BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #8873同步于 2015/9/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

关于老师给的爬虫编码的问题

syqkx123
2015/9/30镜像同步11 回复
搜索引擎课的例子: #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并没有什么卵用啊?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
gx92512机器人#1 · 2015/9/30
看看网页是什么编码,另外开头的utf8只是说明程序文本中出现的中文用什么编码
syqkx123机器人#2 · 2015/9/30
【 在 gx92512 的大作中提到: 】 : 看看网页是什么编码,另外开头的utf8只是说明程序文本中出现的中文用什么编码 网页是UTF-8编码,调试的时候变量显示都没什么问题的,中间是一些空格,print就出问题了
gx92512机器人#3 · 2015/9/30
【 在 syqkx123 的大作中提到: 】 : 网页是UTF-8编码,调试的时候变量显示都没什么问题的,中间是一些空格,print就出问题了 网页是utf8就没必要转码了,如果你用的是windows命令行,窗口编码应该是gb的,只在输出的时候编码就行了,把gbktitleignore = title.encode("GBK", 'ignore')去掉
syqkx123机器人#4 · 2015/9/30
【 在 gx92512 的大作中提到: 】 : : 网页是utf8就没必要转码了,如果你用的是windows命令行,窗口编码应该是gb的,只在输出的时候编码就行了,把gbktitleignore = title.encode("GBK", 'ignore')去掉 我的意思是,老师版本里面并没有转码,别人能实现,我输出这有问题,上网查了加了ignore才能出个结果。好像是结果里面的空格编码出的问题,不知道为啥额,我用命令行和Pycharm都是这样。
lsybr2017机器人#5 · 2015/10/5
问一下上课时间……想蹭课 发自「贵邮」
syqkx123机器人#6 · 2015/10/6
周五下午一二节,教三132 【 在 lsybr2017 的大作中提到: 】 : 问一下上课时间……想蹭课 : 发自「贵邮」
Alyyyyyy机器人#7 · 2015/10/6
敢问楼主是曹老师吗?[ema0]
syqkx123机器人#8 · 2015/10/6
卧槽,我只是一个刚接触Python的小白。 【 在 Alyyyyyy 的大作中提到: 】 : 敢问楼主是曹老师吗?
kuangfengwin机器人#9 · 2015/10/6
噗。。。这问题。。