我想使用简单的python regexp从足球(足球)网页上删除一些信息.问题在于,像第一个小伙子,ÄRITALO这样的球员出现了ÄÄ RITALO!
也就是说,html对特殊字符使用转义标记,例如Ä
有没有一种简单的方法将html读入正确的python字符串?如果它是XML/XHTML那么很容易,解析器会这样做.
我建议使用BeautifulSoup进行HTML抓取.您还需要告诉它将HTML实体转换为相应的Unicode字符,如下所示:
>>> from BeautifulSoup import BeautifulSoup >>> html = "ÄÄRITALO!" >>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES) >>> print soup.contents[0].string ÄÄRITALO!
(如果标准编解码器模块包含一个编解码器,那将是很好的,这样你可以做 "some_string".decode('html_entities')
但不幸的是它没有!)
编辑: 另一个解决方案:Python开发人员Fredrik Lundh(elementtree的作者,除其他外)有 一个功能来取消他的网站上的HTML实体,它与十进制,十六进制和命名实体一起工作(BeautifulSoup不适用于六角形实体).