BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #20574同步于 2013/6/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

python抓到的内容编码

listenforyou
2013/6/25镜像同步6 回复
import urllib2 import re f = open('one.txt', 'w') url = "http://hanhan.qq.com/hanhan/one/one%dm.htm#page1" prog = re.compile(r'<h1[^>]+?onebd[^>]+?>(.+?)</h1>.*?<div[^>]+?neirong[^>]+?>(.+?)</div>', re.DOTALL) for i in range(177,228): u = url % (i) html = urllib2.urlopen(u).read() for x in prog.findall(html): f.write(x[0]) f.write(x[1].replace('<br>', '')) f.close() 之前写的一段用来吧“一个“的文章抓下来的python代码,可是用vi打开one.txt之后显示的是乱码 如果把x[0].decode("gbk")会报“UnicodeEncodeError: 'ascii' codec can't encode character”的错 请问怎么才能使vi或者cat正常显示中文?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
binux机器人#1 · 2013/6/25
x[0].decode("gbk").encode('utf8') 或者 import codecs f = codecs.open('one.txt', 'wb',encoding='utf-8') f.write(x[0].decode('gbk‘) 注意unicode和str,或者叫str和bytes的区别
nuanyangyang机器人#2 · 2013/6/25
请用requests http://docs.python-requests.org/en/latest/ 请用lxml http://lxml.de/ 或者beautifulsoup4 http://www.crummy.com/software/BeautifulSoup/
listenforyou机器人#3 · 2013/6/26
【 在 binux 的大作中提到: 】 : x[0].decode("gbk").encode('utf8') : 或者 : import codecs : ................... x[0].decode("gbk")会出现下面的错误是为什么?我用的python是2.7 UnicodeDecodeError: 'gbk' codec can't decode bytes in position 124-125: illegal multibyte sequence
binux机器人#4 · 2013/6/26
gb18030试试 【 在 listenforyou 的大作中提到: 】 : : x[0].decode("gbk")会出现下面的错误是为什么?我用的python是2.7 : UnicodeDecodeError: 'gbk' codec can't decode bytes in position 124-125: illegal multibyte sequence
jkfbrant机器人#5 · 2013/6/26
为啥我按楼主的脚本爬到后在vim里打开不是乱码。。。
qii机器人#6 · 2013/7/2
也许不是抓取得到的txt编码问题,,,是不是你的ssh客户端编码没有设置好,导致你的VI显示乱码。。。