Python爬虫的乱码问题?
本文介绍了Python爬虫的乱码问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
使用python实现模拟登陆并爬取返回页面的时候出现了乱码,目标网页的编码使用utf-8
相关代码:
#coding=utf-8
import urllib
import urllib2
headers={
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Connection':'keep-alive',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36'
}
payload={
'_eventId':'submit',
'lt':'_cF2A0EB3F-D044-046C-6F4A-C828DE0ACE8E_k8B4BE5F5-4CAD-375D-0DDC-FB84A18445DF',
'password':'',
'submit':'登 录',
'username':''
}
payload=urllib.urlencode(payload)
request = urllib2.Request(posturl, payload, headers)
print request
response = urllib2.urlopen(request)
text = response.read()
print text
控制台输出信息:
第一次遇见这种乱码比较懵逼
解决方案
urllib2没有处理压缩的问题,你要使用gzip解压,比如这样
from StringIO import StringIO
import gzip
if response.info().get('Content-Encoding') == 'gzip':
buf = StringIO(text)
f = gzip.GzipFile(fileobj=buf)
data = f.read()
总结urllib2比较底层,建议使用requests
这篇关于Python爬虫的乱码问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文