先说下发现的问题,今天在做一个爬取功能的时候,中文一直是乱码,原来以为是返回的数据压缩导致的,后边查了下文档,requests里如果headers设置了'Accept-Encoding': 'gzip, deflate',且目标网页也支持压缩的话,requests会把爬到的网页自动解压缩,所以应该不是压缩的问题,后来把爬到的数据看了下编码
html = requests.get(url,headers=headers)
print html.encoding,输出:ISO-8859-1
你妹的,原来返回的编码是ISO-8859-1的,后边查了下文档才知道,requests在返回的数据header里没有发现charset 的话,就会用默认的字符集ISO-8859-1编码,尼玛啊,爬的网页编码是utf-8的,你用ISO-8859-1编码中文坑顶乱码了,
解决办法:
也很简单,就是把返回的数据设置下编码就可以了,
html = requests.get(url,headers=headers)
html.encoding = 'utf-8' #设置成utf-8就可以了
参考网址:https://blog.youkuaiyun.com/sentimental_dog/article/details/52661974?locationNum=3&fps=1
---------------------
作者:laiyijian
来源:优快云
原文:https://blog.youkuaiyun.com/laiyijian/article/details/80241832
版权声明:本文为博主原创文章,转载请附上博文链接!