requests库中response.text 和response.content的区别

本文介绍了requests库中response.text和response.content的区别。response.text是对HTTP响应内容的自动解码,适合Unicode字符集。而response.content是原始二进制字节流,适用于二进制数据。Requests库通过HTTP头部或chardet.detect猜测响应编码。推荐使用response.content.decode()来解码获取网页源码,结合Content-Type头或网页源码确定解码方式。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值