Python requests彻底解决乱码问题

爬虫做着做着总会遇到乱码问题,之前一般都是直接去看网页返回的编码,然后再根据网页编码手动去替换response的编码.最后在某个网站上看到
response.encoding=response.apparent_encoding
当时不管三七二十一直接就放在代码里正常运行就行了,也不管为啥这样就不会乱码,最后在今天也会出现乱码问题,所以自己仔细查看了一下问题.
Python requests彻底解决乱码问题_第1张图片
response.encoding的编码就是response里headers里的content-type字段的charset 当返回没有content-type字段时 则默认为ISO-8859-1
response.apparent_encoding内部实现是将response.content 使用python的模块chardet的detect方法来判断其编码 但是有时候也会出现判断错误,至少在我这时这样的

所以最后的解决办法为:

response.encoding = response.apparent_encoding if response.encoding == 'ISO-8859-1' else response.encoding

你可能感兴趣的:(爬坑日记,python,乱码,request,爬虫)