1.response.text
- 类型:str
- 解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
- 如何修改编码方式:response.encoding=”gbk”
2. response.content
- 类型:bytes
- 解码类型: 没有指定
- 如何修改编码方式:response.content.deocde(“utf-8”)
3. 区别
使用response.text 时,Requests 会基于 HTTP 响应的文本编码自动解码响应内容,大多数 Unicode 字符集都能被无缝地解码。
使用response.content 时,返回的是服务器响应数据的原始二进制字节流,可以用来保存图片等二进制文件。
requests默认自带的Accept-Encoding导致或者网站默认发送的就是压缩之后的网页
但是为什么content.read()没有问题,因为requests,自带解压压缩网页的功能
当收到一个响应时,Requests会猜测响应的编码方式,用于在你调用response.text方法时对响应进行解码。
Requests首先在HTTP头部检测是否存在指定的编码方式,如果不存在,则会使用chardet.detect来尝试猜测编码方式(存在误差)
更推荐使用response.content.deocde()
4.获取网页源码的通用方式:
response.content.decod