request请求返回的内容乱码

问题:

r = requests.get()

通过r.text得到的响应数据是乱码

原因:

r.text解码类型:

1)根据响应头的编码 Content-Type字段charset 推测 响应的文本编码 

2)如果HTTP响应中Content-Type字段没有指定charset,则默认页面是'ISO-8859-1'编码,这种解码方式在解析中文的时候就会出现乱码

这里就是因为响应头未指定charset,导致出现乱码

解决方式:

r.apparent_encoding:根据响应的网页内容分析出编码方式

通过apparent_encoding获取网页的编码后,再用r.encoding指定该编码,指定编码后,r.text会根据指定的编码进行解析网页

r.encoding = r.apparent_encoding
r.text # 这次获取的内容不会乱码

解决办法+比较详细的解释:https://www.cnblogs.com/bw13/p/6549248.html

简洁给出解决办法:

https://blog.csdn.net/weixin_42625143/article/details/100054416

https://blog.csdn.net/qq_27629199/article/details/90170836

原文地址:https://www.cnblogs.com/come202011/p/12629940.html