如何清除python中任何非unicode\特殊字符、html标记、js(留下纯文本和标点符号)的字符串



我读过很多类似的问题,但没有找到解决数据清理中遇到的所有问题的方法。

我有一个脚本,它可以抓取一组网站,并从页面正文中获取特定的文本块。

我遇到的问题是仍然在文本中的html标记,例如引号的不同符号(不是"但是",甚至更糟的情况),诸如此类的东西;放大器等等。

现在,我通过自己的清理函数解析文本,但它们并不完美,仍然会遗漏一些情况。

我想知道有没有一个包或常见的方法可以从所有这些情况中清除字符串,并使用"converted to"等字符?

您可以使用HTMLParser模块。

在python 2上:从HTMLParser导入HTMLParser

class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.fed = []
def handle_data(self, d):
self.fed.append(d)
def get_data(self):
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()

在python 3上:

from html.parser import HTMLParser
class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.strict = False
self.convert_charrefs= True
self.fed = []
def handle_data(self, d):
self.fed.append(d)
def get_data(self):
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()

你看过Scrapy吗?

最新更新