Python使用不同的字符集请求解码

时间:2016-08-26 19:07:52

标签: python python-requests

我正在使用requests来抓取网页,但response.encoding中自动推断的编码不正确。我需要解码unicode中的字节,但我没有为此找到API。 response.text是Unicode,但不是字节数组。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

来自the documentation(强调补充):

  

当您提出请求时,请求会对此进行有根据的猜测   基于HTTP头的响应编码。文本编码   当您访问r.text时,会使用请求猜测。你可以找到   请求正在使用的编码,并使用r.encoding更改它   属性:

>>> r.encoding
'utf-8'
>>> r.encoding = 'ISO-8859-1'
     

如果您更改了编码,只要您拨打r.encoding ,请求就会使用r.text的新值。你可能想要这样做   在任何你可以应用特殊逻辑来解决问题的情况   内容的编码将是。例如,HTTP和XML都有   能够在他们的身体中指定他们的编码。在情况下   像这样,您应该使用r.content来查找编码,然后   设置r.encoding。这样您就可以正确使用r.text   编码