python 抓取的网页链接,链接中的中文乱码问题 200

我的系统是win7,在idel中编辑脚本,并按F5在shell中执行的。python抓取的网页链接,并把每个链接都保存到list中,然后遍历list将网址输出到pytho... 我的系统是win7,在idel中编辑脚本,并按F5在shell中执行的。
python抓取的网页链接,并把每个链接都保存到list中,然后遍历list将网址输出到python的shell上面,
网页的编码是gb2312,但是我的脚本是code:utf-8 。因为我要把抓取的数据保存到excel中。

所以我用:
html = urllib2.urlopen(url).read()
html = html.decode('gb2312','ignore').encode('utf-8')
应该可以把网页的编码转成html
然后我用正则表达式去匹配我要抓取的网址,
pattern = re.compile("<TD width='(.*?)'><a href='../(.*?)'",re.S)
listinfo = re.findall(pattern,html)

listinfo应该是一个list
然后我要把输入list
for i in listinfo:
print i[1]
在输出的时候,有的链接里含有中文,最奇怪的是:有的链接里中文乱码,链接是不能访问的。有的是没有乱码的,链接可以访问。请问这是为什么?如何才能不乱码?

部分截图如下:
如果中文乱码的话,为什么不是所有链接里含有的中文都乱码呢?
展开
 我来答
hjuj_91
2015-06-01 · TA获得超过328个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:147万
展开全部

应该是shell的编码和listinfo编码不一样导致的,部分正常,部分乱码有可能是因为两种编码部分字符恰好一样。


试试

import sys
print i[i].encode(sys.getdefaultencoding())
追问
试了一下
print url.encode(sys.getdefaultencoding())
,使用获得系统默认编码还是不行,该乱码的还是乱码
追答
for i in listinfo:
    print i[i].encode(sys.getdefaultencoding())
也不行?

代码都贴出来吧。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式