在python3中,如何选择编码以便能够正确读取页面

时间:2017-02-20 12:17:20

标签: html python-3.x encode html-encode

我正在尝试使用以下命令来获取页面的源代码

  

requests.get( “网站”)。文本

但是我收到了一个错误:

  

UnicodeEncodeError:'gbk'编解码器无法编码位置356中的字符'\ xe6':非法多字节序列

然后我尝试将页面代码更改为utf-8

  

requests.get( “网站”)。text.encode( 'UTF-8')

但除了英语将成为以下形式

  

\ XE6°\ XB8 \ XE4 \ xb9 \ X85 \ XE6 \ X8F \ X90 \ XE4 \ XBE \ x9b \ xe5 \ X85 \x8dè\ XB4 \ xb9VPN \ xe5 \ XB8 \ X90 \ xe5 \ X8F·\ xe5 \ X92 \ x8c \ xe5 \ X85 \x8dè\ XB4 \ XB

我该怎么办? 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

您可以通过访问requests.Response属性来查询Response.content对象的编码。

每当您调用requests.Response.text时,响应对象都使用requests.Response.encoding来解码字节。

然而,这可能并不总是正确的编码,因此您有时必须通过在content属性中查找它来手动设置它,因为网站通常在那里指定编码,如果它是不是utf-8或类似的(这是经验,我不确定这是否是实际的标准行为)。

See more on requests.Response contents here