如何使用python使Escape Sequence to Character Entities

时间:2014-02-01 04:08:05

标签: python html

我是一个新鲜的蟒蛇,谢谢你的帮助。 我只想将Escape Sequence转换为Character Entities,比如&lt;更改为<,但是一个HTML页面有许多不同的转义序列,我不能写很多替换语句,如:

str = str.replace('&nbsp;', ' ')

...............many code.........

str = str.replace('&lt;', '<')
str = str.replace('&gt;', '>')

这太长了......我只是想要一个有趣或def,这可以轻松解决问题。 非常感谢你

1 个答案:

答案 0 :(得分:2)

使用HTMLParser.HTMLParser

>>> from HTMLParser import HTMLParser
>>> # from html.parser import HTMLParser # In Python 3.x
>>> 
>>> parser = HTMLParser()
>>> parser.unescape('&gt;_&lt;')
u'>_<'
>>> parser.unescape('&#48;&#49;&#x32;')
u'012'

注意HTMLParser.unescape('&nbsp;')返回NO-BREAK SPACE(U + 00A0)而不是SPACE。

>>> parser.unescape('&nbsp;')
u'\xa0'

顺便说一句,不要将str用作变量名,它会隐藏内置函数str