将BeautifulSoup NavigableString转换为使用html实体

时间:2014-03-27 20:47:43

标签: python-2.7 beautifulsoup

So BeautifulSoup parses HTML entities into Unicode upon reading input。如果我在HTML元素上使用.prettify(formatter='html'),我可以convert these back to HTML entities

NavigableString课程没有.prettify()方法。我想将NavigableString转换为包含正确HTML实体的字符串。我怎么能这样做?

我能想到的唯一方法是使用假<a>标记围绕它,在标记上使用.prettify(),并从结果字符串中删除开头和结尾字符。

1 个答案:

答案 0 :(得分:4)

不得不诉诸UTSL。相应的方法是NavigableString.output_ready()

>>> u=BeautifulSoup('&alpha;')
>>> u
<html><body><p>╬▒</p></body></html>
>>> u.p.contents[0]
u'\u03b1'
>>> u.p.contents[0].output_ready(formatter='html')
u'&alpha;'