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