爬虫编码问题

环境

python版本: 3.5.0
编辑器: vscode,用code runner插件运行
抓取网页:新浪首页

代码

import requests
main_url = 'http://www.sina.com.cn/'
res = requests.get(main_url)
res.encoding = 'utf-8'
print(res.text)

运行结果


用cmd窗口的运行出现同样的错误

问题:

UnicodeEncodeError: 'gbk' codec can't encode character '\xa5' in position 68196: illegal multibyte sequence

信息

网页编码: utf-8
windows默认编码: GBK
python3默认编码:utf-8
vscode文件编码:utf-8

分析

windows cmd默认编码是GBK
GBK无法解析有些utf-8的字符
vscode runner可能不支持打印有些utf-8的字符
查找vscode code runner插件github发现下面链接
https://github.com/formulahendry/vscode-code-runner/issues/25
结论:vscode code runner目前无法支持utf-8

解决

vscode code runner无法支持utf-8,能否让cmd窗口支持utf-8呢
查找到结果
http://www.cnblogs.com/QQParadise/articles/1685177.html
修改cmd窗口的代码页
执行下面命令
chcp 65001
将cmd窗口编码设置位utf-8,运行刚才的代码,打印正常,问题解决
修改完代码页后,会发现cmd窗口设置字体的地方多了几个字体,将字体设置为Consolas,窗口也变漂亮很多

等待vscode code runner下一个版本支持utf-8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容