今天遇到一个小问题,用脚本把某web页面抓取下来时,里面的中文都是类似”帮助”这样的格式.这当然不是我想要的,我需要把它转化为可读的汉字.
为了解决这个问题,首先要用到内建函数unichr:
unichr(24110) 能得到”帮”字, unichr(21161) 能到”助”字,问题是我怎么批量吧html里面的所有 &#nnnnn; 替换掉呢?
干这类事情当然需要正则表达式了,于是,去翻re的文档,还真让我给找到了,方法如下:
1 2 3 4 5 6 7 8 9 | #!/usr/bin/env python # -*- coding: utf-8 -*- import re str='<a href="/music/html/faq.html">帮助</a>' def unistr(m): return unichr(int(m.group(0)[2:-1])) print re.sub(r'&#[0-9]{5};',unistr,str) |
运行这段示例代码就可以得到我想要的结果了,哈哈.
觉得python的这个re好强大,居然替换字符串还可以是个函数…太佩服这个设计了.
shellex
很多语法糖,好玩
shellex
很多语法糖,好玩。呵呵
bones7456
你个夜猫子..不睡觉啊?
TualatriX
很好很强大!继续学习Python。
dreamer
你的那个抓取Web页面的脚本也是用Python写的么?
中文处理可以参考一下这里的,当时偶还研究了一番,现在又忘光了
http://wiki.woodpecker.org.cn/moin/PyInChinese
bones7456
恩,这个目前是纯python的程序,包括web抓取和下载.
你说的那个页面貌似比较乱,可能讲的是老版本的python?我这倒没遇到什么中文问题,不管是在linux下还是在win下.