有没有人知道在Python中使用HTML实体代码(例如<
&
)将字符串转换为普通字符串(例如<&)的简单方法?
cgi.escape()
将逃脱字符串(很差),但没有unescape()
.
HTMLParser具有标准库中的功能.遗憾的是,它没有记录:
(Python2 文档)
>>> import HTMLParser >>> h= HTMLParser.HTMLParser() >>> h.unescape('alpha < β') u'alpha < \u03b2'
(Python 3 Docs)
>>> import html.parser >>> h = html.parser.HTMLParser() >>> h.unescape('alpha < β') 'alpha < \u03b2'
htmlentitydefs已记录在案,但要求您自己完成大量工作.
如果您只需要XML预定义实体(lt,gt,amp,quot,apos),则可以使用minidom来解析它们.如果您只需要预定义的实体而没有数字字符引用,您甚至可以使用普通的旧字符串替换速度.
我一开始忘了标记它,但我正在使用BeautifulSoup.
在文档中挖掘,我发现:
soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
完全像我希望的那样.