
我们俩的联系方式![]()
Similar entries最新评论
友情链接导航 |
解码 HTML 中的 unicode entity
由 qyb 于 星期三, 2007-05-30 18:09 发表
中午 zzh 发来一个问题,如何对抓下来的网页中的 unicode 字符串,诸如北京市一二八中学 首先想到的是最熟的 libxml2/HTMLParser。简单试了试 xmllint,无解;又大致看了看源代码,貌似没有专门处理的部分。 再转到 Python 的 BeautifulSoup。看了看文档,也貌似无解。 最后只好 google 之,发现 php 的 html_entity_decode 是一个现成的函数。赶快推荐给 zzh,发现他已经自己动手写了一个解析函数了,汗.... 最后要说的是,在 google 过程中,发现 Perl 似乎也有现成模块来做这个工作,不过偶不会 Perl,没有尝试。另外就是发现一个叫李卫公的 blogger 在 Python 上也写了一个简单的程序来解码,看起来是一个正则表达式牛人,推荐一下。 |
正则表达式也可以处理
另一种做法是:
import re
def decode(string):
return re.sub('&#[0-9]{5};', lambda x: unichr(int(x.group(0)[2:-1])),re.sub(' ', ' ', string))
BeautifulSoup 可以的
>>> from BeautifulSoup import BeautifulStoneSoup
>>> print BeautifulStoneSoup("""春天里
光明""",convertEntities=BeautifulStoneSoup.HTML_ENTITIES).contents[0]
春天里
光明
去看www.luanxiang.org
去看www.luanxiang.org 。
李卫公翻译了《master regexpress 3ed》
记得去买一本捧场:D