python的requests的乱码怎么解决
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
python3的requests解析中文页面出现乱码的解决方法
第一部分 关于requests库
(1)requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到。
(2)其中的Request对象在访问服务器后会返回一个Response对象,这个对象将返回的Http响应字节码保存到content属性中。
(3)但是如果你访问另一个属性text时,会返回一个unicode对象,乱码问题就会常常发成在这里。
(4)因为Response对象会通过另一个属性encoding来将字节码编码成unicode,而这个encoding属性居然是responses自己猜出来的。
第二部分 解决方法
所以要么你直接使用content(字节码),要么记得把encoding设置正确,比如我获取了一段gbk编码的网页,就需要以下方法才能得到正确的unicode。
import requests
url = "http://xxx.xxx.xxx"
response = requests.get(url)
response.encoding = 'gbk'
print(response.text)
问题来源于python学习网