requests 抓取网页数据提示UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xe4′

windows下用requests 抓取的网页数据, 用print函数输出源码时, cmd运行提示requests UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xe4′

但是在python IDLE 中能正常运行,

问题在于print函数 与 cmd 终端的字符编码,

而不是requests 返回的字符编码有问题,

先使用chcp查看终端字符编码

chcp01

936为GBK编码

UTF-8对应的值为 65001

因为cmd的字符编码是GBK, Print函数会用终端默认的字符集去输出, 所以会出现UnicodeEnableError: ‘gbk’ 的问题

要解决这个问题可以在cmd终端输入chcp 65001 即可

chcp02

修改了终端字符集后,代码能正常运行了, 但是偶尔还是会出现乱码问题,

此时就要查看requests 抓取内容的字符集了

如果返回结果不是utf-8 使用print输出时中文就会出现乱码

要解决中文乱码问题,只需要重新设置响应内容的字符集

html.encoding = ‘utf-8′

如果响应内容是utf-8格式的,在不论终端字符编码是gbk还是utf-8 都可以正常输出

如果响应内容不是utf-8的格式,使用print输出的时候就会出现UnicodeEncodeError:’gbk’codec can’t encode character ‘\xe4′ 这样的问题

requests 抓取网页数据提示UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xe4′

转载请注明来源:幽幽过客_{requests 抓取网页数据提示UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xe4′}