Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编码;Python3的 默认编码 为Unicode,可以识别中文字符。
python编码简介
在用python的requests做爬虫或者其它数据采集任务的时候,爬取下来的内容会有乱码的情况,遇到这问题在多数情况下是因为页面编码和python默认编码不匹配导致的。我们要先确定网站编码,再将爬取的代码设置成对应的编码即可。
来一个例子?, 原始代码如下, 显示的内容就是乱码,或者写入文件的时候直接报错。
headers = { 'x-requested-with': 'XMLHttpRequest', 'referer': 'https://www.***.com/0_31/', 'User-Agent': 'Mozilla/6.0 (Windows NT 10.0; Win64; x64) AppleWebKit/538.38 (KHTML, like Gecko) Chrome/71.0.3648.113 Safari/541.36' } res = requests.get(url, headers=headers, verify=False) print(res.text) # 输出内容包含 IMDBÆÀ·Ö8·Ö×óÓÒӰƬ400Óಿ

通过在浏览器(Chrome)页面按F12,查看Elements,可以看到页面的 charset,我们发现charset=gbk
, 这个时候我们只需要添加一行代码就可以修正乱码的问题。
res = requests.get(url, headers=headers, verify=False) res.encoding = "gbk" print(res.text)