返回信息流搜索引擎课的例子:
#encoding=utf-8
from lxml import html
x = html.parse('http://www.mtime.com/hotest/')
titles = x.xpath('//dt/a/text()')
print "We got %s titles. Here are the first 5:" % len(titles)
for title in titles:
print title
我运行的结果是这个:
UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 2: illegal multibyte sequence
然后查了下,改成这样:
from lxml import html
x = html.parse('http://www.mtime.com/hotest/')
titles = x.xpath("//dt/a/text()")
print "We got %s titles. Here are the first 5:" % len(titles)
print(titles)
for title in titles:
gbktitleignore = title.encode("GBK", 'ignore')
print gbktitleignore
gb18030tltle = title.encode("GB18030")
print(gb18030tltle)
好歹能出结果了:
港囧Lost In Hongkong(2015)
港囧?0?2?0?2Lost In Hongkong(2015)
九层妖塔Chronicles of the Ghostly Tribe(2015)
九层妖塔?0?2?0?2Chronicles of the Ghostly Tribe(2015)
碟中谍5:神秘国度Mission: Impossible - Rogue Nation(2015)
碟中谍5:神秘国度?0?2?0?2Mission: Impossible - Rogue Nation(2015)
第三种爱情The Third Way Of Love(2015)
第三种爱情?0?2?0?2The Third Way Of Love(2015)
解救吾先生Saving Mr.Wu(2015)
解救吾先生?0?2?0?2Saving Mr.Wu(2015)
像素大战Pixels(2015)
像素大战?0?2?0?2Pixels(2015)
夏洛特烦恼Goodbye Mr.Loser(2015)
夏洛特烦恼?0?2?0?2Goodbye Mr.Loser(2015)
小黄人大眼萌Minions(2015)
小黄人大眼萌?0?2?0?2Minions(2015)
暗杀Assassination(2015)
暗杀?0?2?0?2Assassination(2015)
蚁人Ant-Man(2015)
蚁人?0?2?0?2Ant-Man(2015)
为什么有些人结果正常,我这编码出了问题?
感觉开头那个#encoding=utf-8并没有什么卵用啊?
这是一条镜像帖。来源:北邮人论坛 / python / #8873同步于 2015/9/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
关于老师给的爬虫编码的问题
syqkx123
2015/9/30镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 gx92512 的大作中提到: 】
: 看看网页是什么编码,另外开头的utf8只是说明程序文本中出现的中文用什么编码
网页是UTF-8编码,调试的时候变量显示都没什么问题的,中间是一些空格,print就出问题了
【 在 syqkx123 的大作中提到: 】
: 网页是UTF-8编码,调试的时候变量显示都没什么问题的,中间是一些空格,print就出问题了
网页是utf8就没必要转码了,如果你用的是windows命令行,窗口编码应该是gb的,只在输出的时候编码就行了,把gbktitleignore = title.encode("GBK", 'ignore')去掉
【 在 gx92512 的大作中提到: 】
:
: 网页是utf8就没必要转码了,如果你用的是windows命令行,窗口编码应该是gb的,只在输出的时候编码就行了,把gbktitleignore = title.encode("GBK", 'ignore')去掉
我的意思是,老师版本里面并没有转码,别人能实现,我输出这有问题,上网查了加了ignore才能出个结果。好像是结果里面的空格编码出的问题,不知道为啥额,我用命令行和Pycharm都是这样。