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