python request中的content和text的区别

Posted ganiner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python request中的content和text的区别相关的知识,希望对你有一定的参考价值。

一直不清楚requestes的content和text方法的区别,只知道content返回的是二进制数据,而text返回的是文本数据

 

先看看content的源码:

注释可知content返回的是bytes型也就是二进制的数据

在看看text的源码:

意思是requests.text是根据网页的响应来猜测编码,如果服务器不指定的话,默认编码是"ISO-8859-1"所以这是为什么有些时候用 response.text 返回的是乱码的原因。

可以用response.encoding看一下他猜测的编码是啥。然后用response.encoding = \'utf-8\'来设置编码

实例如下:

1 import requests
2 response=requests.get(\'http://www.qq.com\')
3 response.encoding
4 >>\'GB2312\'
View Code

1 >>> response.encoding="UTF-8"
2 >>> response.encoding
3 \'UTF-8\'
View Code

 

总结:

content用来返回二进制数据,适用于保存二进制数据,例如图像,文件等
text适用于显示文本数据,编码根据服务器的响应来显示,也可以自己设置

 

以上是关于python request中的content和text的区别的主要内容,如果未能解决你的问题,请参考以下文章

python requests的content和text方法的区别

无论 Content-Type 标头如何,在 Python Flask 中获取原始 POST 正文

python中的头数据requests.put()不会改变

aiohttp中request.iter_content()的等效方法是啥?

Python爬虫-requests库数据挖掘

Python爬虫-requests库数据挖掘