猿问

将XML/HTML实体转换为Python中的Unicode字符串

将XML/HTML实体转换为Python中的Unicode字符串

我正在做一些Web抓取,网站经常使用HTML实体来表示非ascii字符。Python是否有一个带有HTML实体的字符串并返回Unicode类型的实用程序?

例如:

我回来了:

ǎ

表示带有音调标记的“ǎ”。在二进制文件中,这被表示为16位01ce。我希望将html实体转换为值。u'\u01ce'


慕侠2389804
浏览 1168回答 4
4回答

饮歌长啸

标准库本身的HTMLParser有一个无文档的函数unaway(),它执行您认为它所做的事情:import HTMLParserh = HTMLParser.HTMLParser()h.unescape('© 2010') # u'\xa9 2010'h.unescape('© 2010') # u'\xa9 2010'

哔哔one

使用内置unichr-美容汤是不必要的:>>> entity = '&#x01ce'>>> unichr(int(entity[3:],16))u'\u01ce'

婷婷同学_

如果您有lxml,另一种选择是:>>> import lxml.html>>> lxml.html.fromstring('&#x01ce').text u'\u01ce'
随时随地看视频慕课网APP
我要回答