Python requests彻底解决乱码问题

爬虫做着做着总会遇到乱码问题,之前一般都是直接去看网页返回的编码,然后再根据网页编码手动去替换response的编码.最后在某个网站上看到
response.encoding=response.apparent_encoding
当时不管三七二十一直接就放在代码里正常运行就行了,也不管为啥这样就不会乱码,最后在今天也会出现乱码问题,所以自己仔细查看了一下问题.
在这里插入图片描述
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值