我建议使用BeautifulSoup进行HTML抓取.您还需要告诉它将HTML实体转换为相应的Unicode字符,如下所示:
>>> from BeautifulSoup import BeautifulSoup
>>> html = "<html>ÄÄRITALO!</html>"
>>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
>>> print soup.contents[0].string
ÄÄRITALO!
Run Code Online (Sandbox Code Playgroud)
(如果标准编解码器模块包含一个编解码器,那将是很好的,这样你可以做 "some_string".decode('html_entities')
但不幸的是它没有!)
编辑: 另一个解决方案:Python开发人员Fredrik Lundh(elementtree的作者,除其他外)有 一个功能来取消他的网站上的HTML实体,它与十进制,十六进制和命名实体一起工作(BeautifulSoup不适用于六角形实体).