我的系统是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 url.encode(sys.getdefaultencoding())
ï¼ä½¿ç¨è·å¾ç³»ç»é»è®¤ç¼ç è¿æ¯ä¸è¡ï¼è¯¥ä¹±ç çè¿æ¯ä¹±ç