PySe-018-Requests 解决响应乱码

摘要:
因网站实现不同,通常响应数据的编码会存在差异,导致在使用requests访问网站或接口获取响应结果时,获取的响应结果显示乱码,如下所示:请求发出后,Requests会基于HTTP头部对响应的编码作出有根据的推测,并使用其推测的文本编码r.encoding自动解码来自服务器的内容,因而大多数unicode字符集都能被无缝地解码。

因网站实现不同,通常响应数据的编码会存在差异,导致在使用 requests 访问网站或接口获取响应结果时,获取的响应结果显示乱码,如下所示:

PySe-018-Requests 解决响应乱码第1张

请求发出后,Requests会基于 HTTP 头部对响应的编码作出有根据的推测,并使用其推测的文本编码 r.encoding 自动解码来自服务器的内容,因而大多数 unicode 字符集都能被无缝地解码。当编码格式与当前编码格式不一致时,包含显示的中文响应内容就会存在乱码,如上图中所示。

importsys

#获取系统默认编码
print(sys.getdefaultencoding())

#查看 requests 响应编码
r.encoding

PySe-018-Requests 解决响应乱码第2张

因二者编码格式不一致,所以输出的响应内容中文显示会存在乱码,通过 r.encoding = ‘utf-8’ 修改响应编码格式,即可正常显示中文。修改后的编码如下图所示:

#encoding:utf-8

importrequests
importurllib3
importsys

urllib3.disable_warnings()

defbaidu():
    r = requests.get('https://www.baidu.com', verify=False)
    
    print('系统默认编码:' +sys.getdefaultencoding())
    print('请求响应编码:' +r.encoding)
    
    r.encoding = 'utf-8'
    print('修改后的编码:' +r.encoding)
    
    print('
')
    print(r.text)
    
if __name__ == '__main__':
    baidu()
    

执行结果如下图所示:

PySe-018-Requests 解决响应乱码第3张

免责声明:文章转载自《PySe-018-Requests 解决响应乱码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇把list转换为一个用逗号分隔的字符串(转)Linux修改eth2到eth0(70-persistent-net.rules)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

js引用类型赋值不改变原对象值

在JS中,对象的赋值是指默认情况下的赋值。如果更改指定对象,原始对象也将更改。如果要复制赋值,需要重新分配对象:vara={'name':'zhangsan'};varb=对象。分配b、 name='lisi';这样,原始对象的下一层的值不会更改,但如果对象中存在对象,下一层也会更改下一层中的原始对象。处理两个对象的相关性有一个简单而激烈的问题:obj1={...

c++ 发送消息,模拟拖拽文件

=NULL)28{29LPSTRpszRemote=VirtualAllocEx;30if31{32::SendMessage;33bResult=TRUE;34}35}36}3738if39{40delete[]pBuf;41pBuf=NULL;42}43 returnbResult;44}在调用此函数之前,首先打开接受拖动的进程ShellExecute;...

java.net.URISyntaxException的解决办法

直接采用Stringurl=“http:count=1”;HttpGethttpget=新的HttpGet(url);HttpResponseresponse=client.execute(httpget);例如,“|”&因此,不能直接使用String而不是URI来访问。然后我们可以使用URL生成URI的方法来解决这个问题。代码如下:URLu...

.NET5 ABP框架(一)

授权-ABP可以以声明的方式检查权限。如果发生异常,ABP将自动记录并向客户机返回适当的结果。默认情况下,ABP使用Log4Net写入日志。当然,我们也可以通过修改配置来使用其他日志框架。除了本示例中显示的ABP的优点之外,ABP还提供了一个健壮的基础架构和应用程序模型。...

汇编指令MOV

格式:MOVDST,SRC例如:MOVEAX,#050aH;将十六进制050a传送到通用寄存器eax中MOVDI,BXMOVES,AXMOVAX,DSMOVAL,23HMOV[2000H],02HMOV[2061H],BX...

uniapp打包h5 出现'连接服务器超时,点击屏幕重试'的页面

跟踪以首先找出原因全局组件AsyncErrorNew在中注册。js文件可以自定义。我很快就过去了,所以我添加了一个空白页面,然后在清单中介绍了组件。json文件...