我正在尝试使用以下命令来获取页面的源代码
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
我该怎么办? 谢谢你的帮助
答案 0 :(得分:0)
您可以通过访问requests.Response
属性来查询Response.content
对象的编码。
每当您调用requests.Response.text
时,响应对象都使用requests.Response.encoding
来解码字节。
然而,这可能并不总是正确的编码,因此您有时必须通过在content
属性中查找它来手动设置它,因为网站通常在那里指定编码,如果它是不是utf-8
或类似的(这是经验,我不确定这是否是实际的标准行为)。