在 Python 中去除 、\、\t、\xa0、\x80\x93 个字符文本的最快方法



>我正在使用beautifulsoup转换html数据,收集"p"标签中的所有文本并将其转换为字符串。我这样做是使用:

source = BeautifulSoup(response.text, "html.parser")
content = ""
for section in source.findAll('p'):
content += section.get_text()

但是,当我转换它时,诸如提到的标签分散在整个字符串中。我已经尝试了多种方法从我正在使用的字符串中删除所有这些字符,例如:

unicodedata.normalize('NFKC', text)

content = u" ".join(content.split())

text.strip(), text.rstrip()

是否有可以从字符串中删除这些标签的库。其中一些方法解决了某些问题,但大多数仍然存在。

编辑:这是一个字符串的示例:https://pastebin.com/2DGECKXa

您可以使用.replace方法编写一个函数来执行此操作。

unwanted_chars = ['n', 't', 'r', 'xa0', 'âx80x93'] # Edit this to include all characters you want to remove
def clean_up_text(text, unwanted_chars=unwanted_chars):

for char in unwanted_chars:
text = text.replace(char, '')
return text

然后,您可以应用函数clean_up_text删除所有不需要的字符。

new_text = clean_up_text(old_text)

看看这是否有效

from simplified_scrapy.simplified_doc import SimplifiedDoc
doc = SimplifiedDoc(response.text)
content = ""
for section in doc.ps:
content += section.text
# content += section.unescape()
print (content)

相关内容

  • 没有找到相关文章

最新更新