我在学习爬虫时遇到了:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xd0 in position 11315: illegal multibyte sequence这个问题,开始这个问题困扰了我,所幸解决了。
代码写到这时:
print(response.content.decode("gbk")
出现了UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xd0 in position 11315: illegal multibyte sequence问题。
解决办法:
将代码写成:
print(response.content.decode(encoding="gbk", errors="ignore"))
详细说一下bytes.decode(encoding=”gbk”, errors=”ignore”)语法:
参数:
encoding – 解码时要使用的编码方案,如”UTF-8”。
errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’,
‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。
其中errors中的其他值:
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。