写爬虫时需要事先知道要爬网页的编码,通过document.charset
命令可以查询页面编码。
这里遇到一个问题,虽然查询的结果是GBK
,但使用GBK
解码时却报了如题所示的错误。从报错的内容可以看出是页面中部分字符无法识别导致的,解决方法有两个:
- 将
GBK
改为gb18030
,gb18030
编码包含更多的字符, 所以可以处理部分GBK
无法处理的字符
requests.get(url).content.decode('gb18030')
- 在解码时加入
errors='ignore'
,跳过出现错误的字符,也就是写成下面的形式
requests.get(url).content.decode('gbk',errors='ignore')