为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哈士奇WWW 2022-07-05 15:45:37
我正在使用 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
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

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


unwanted_chars = ['\n', '\t', 'r', '\xa0', 'â\x80\x93'] # 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)


查看完整回答
反对 回复 2022-07-05
?
森栏

TA贡献1810条经验 获得超5个赞

看看这是否有效


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)


查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号