response.text 和response.content的区别
response.text
类型:str
response.text 返回的是Unicode格式的数据
解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
修改编码方式:response.encoding="gbk"
使用response.text 时,Requests 会基于 HTTP 响应的文本编码自动解码响应内容,大多数 Unicode 字符集都能被无缝地解码。
response.content
类型:bytes
response.content返回的字节流数据
解码类型: 没有指定
修改编码方式:response.content.deocde("utf8"), 可以不写默认就是utf-8
使用response.content 时,返回的是服务器响应数据的原始二进制字节流,可以用来保存图片等二进制文件。
更推荐使用response.content.deocde()的方式获取响应的html页面
当收到一个响应时,Requests 会猜测响应的编码方式,用于在你调用response.text 方法时对响应进行解码。Requests 首先在 HTTP 头部检测是否存在指定的编码方式,如果不存在,则会使用 chardet.detect来尝试猜测编码方式(这样存在误差),所以更推荐使用response.content.deocde()