- res.text判断中文编码时有时候会出错,还是自己通过
chardet
获取更准确 - 先看一段代码
import requests
r = requests.get('http://epaper.sxrb.com/')
print(r.encoding)
# result: ISO-8859-1
- 上面是打开了网址: 山西日报数字报 ;
- 通过手动查询网页源码编码是
charset "utf-8";
- 而
requests
判断的确是ISO-8859-1
,那么它返回的text的中文也就会是乱码。 - 下面我们使用
chardet
来验证一下
import chardet
print(chardet.detect(r.content))
# result: {'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}
- 由上可以看到,
chardet
可以很好的判断出正确的编码方式