我需要从字符串中取消一些HTML实体。
但是对于像“’“”'
这样的少数字符,我想用最近的ASCII替换。所有其他人都需要被剥夺。
我怎样才能在Python中这样做?我尝试了以下代码片段,但它并不像我想要的那样“最接近”。
import HTMLParser
import unicodedata
parser = HTMLParser.HTMLParser()
parsed = parser.unescape("‘")
nearest = unicodedata.normalize('NFKD', parsed).encode('ascii','ignore')
上面的代码中 nearest
为空。我可以为HTMLParser.unescape提供一个参数,将其转换为ASCII引号吗?我想提供这样的自定义映射:{'& lsquo':''','& rsquo':'''}其中地图中的项目应转换为ASCII。
xml.sax.parse
有一些API unescape(html_text, entities={' ': ' ', """: '"'})
,HTMLParser的内容类似。