Loading

response.text 和response.content的区别


返回 我的技术栈(Technology Stack)



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()


posted @ 2021-07-03 10:19  言非  阅读(926)  评论(0编辑  收藏  举报