我一直在阅读许多关于如何使用 python 从字符串中删除所有 html 代码的问答,但没有一个令人满意。我需要一种方法来删除所有标签,保留/转换 html 实体并与 utf-8 字符串一起工作。
显然 BeautifulSoup 容易受到一些特制的 html 字符串的攻击,我用 HTMLParser 构建了一个简单的解析器来获取文本,但我丢失了实体
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.data = []
def handle_data(self, data):
self.data.append(data)
def handle_charref(self, name):
self.data.append(name)
def handle_entityref(self, ent):
self.data.append(ent)
给了我类似的东西
[u'Asia, sp', u'cialiste du voyage', ...
在 spécialiste 中失去重音“e”的实体。
使用您可以找到的许多正则表达式之一作为类似问题的答案,它总会有一些未考虑的边缘情况。
我可以使用任何非常好的模块吗?