关于python 使用urllib2抓取网页出现乱码的问题

liguang311 发布于 2015/10/17 22:34
阅读 819
收藏 0

获取的网页编码为ascii, 操作系统编码也是ascii

还是会出现以下问题,难道是压缩的问题,大神们该怎么解决,搞不定睡不着,帮帮忙,谢谢!

import urllib2,re,urllib,chardet
headers={
         'User-Agent':"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:41.0) Gecko/20100101 Firefox/41.0",
         'Host':"www.cmxsw.com",
         'Accept':"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
         'Accept-Language':"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
         'Accept-Encoding':"gzip, deflate",
         'Cookie':"jq_Obj=1; AJSTAT_ok_pages=10; AJSTAT_ok_times=1",
         'Connection':"keep-alive",
         'If-None-Match':"1445003644|"
         }
url='http://www.cmxsw.com'
#获取网页编码
web=urllib.urlopen(url).read()
chardit=chardet.detect(web)
code=chardit['encoding']
#抓取网页
request=urllib2.Request(url, headers=headers)
respones=urllib2.urlopen(request)
#转换编码
data=respones.read().decode(code).encode('utf-8')
print data 

  File "/home/liguang311/workspace/网络爬虫/www_cmxsw_com.py", line 24, in <module>
    data=respones.read().decode(code).encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 1: ordinal not in range(128)


加载中
0
Jing2016
Jing2016

用chrome看到 response里有Content-Encoding:gzip

说明的你压缩猜测是正确的,是gzip压缩,找一个解压缩库解压就行


谁抢了我的洛洛
请问您是怎么看到的?
返回顶部
顶部