Python 解析请求响应时应该使用.text还是.content?

Python 解析请求响应时应该使用.text还是.content?,python,python-requests,lxml,Python,Python Requests,Lxml,我偶尔使用res.content或res.text解析来自的响应。在我使用过的用例中,我使用哪个选项似乎并不重要 使用.content或.text解析HTML的主要区别是什么?例如: import requests from lxml import html res = requests.get(...) node = html.fromstring(res.content) 在上述情况下,我应该使用res.content还是res.text?关于何时使用每一个,什么是好的经验法则?来自:

我偶尔使用
res.content
res.text
解析来自的响应。在我使用过的用例中,我使用哪个选项似乎并不重要

使用
.content
.text
解析HTML的主要区别是什么?例如:

import requests 
from lxml import html
res = requests.get(...)
node = html.fromstring(res.content)
在上述情况下,我应该使用
res.content
还是
res.text
?关于何时使用每一个,什么是好的经验法则?

来自:

当您提出请求时,请求会对请求进行有根据的猜测 基于HTTP头对响应进行编码。文本编码 当您访问
r.text
时,使用请求猜测。你会发现的 使用
r.encoding
财产:

如果更改编码,请求将使用
r.encoding
无论何时调用
r.text
。你可能想在任何时候都这样做 在这种情况下,您可以应用特殊的逻辑来计算 将对内容进行编码。例如,HTTP和XML具有 在身体中指定编码的能力。在这样的情况下 为此,您应该使用
r.content
查找编码,然后设置
r.encoding
。这将允许您使用正确编码的
r.text


因此,当服务器返回二进制数据或伪造的编码头时,会使用
r.content
,以尝试在元标记中找到正确的编码。

进一步阅读,如果响应是二进制的而不是文本,您也会使用
.content
>>> r.encoding
'utf-8'
>>> r.encoding = 'ISO-8859-1'