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

我的系统是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]
在输出的时候,有的链接里含有中文,最奇怪的是:有的链接里中文乱码,链接是不能访问的。有的是没有乱码的,链接可以访问。请问这是为什么?如何才能不乱码?

部分截图如下:
如果中文乱码的话,为什么不是所有链接里含有的中文都乱码呢?

应该是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())
也不行?

代码都贴出来吧。。
温馨提示:答案为网友推荐,仅供参考