解决UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x8b in position 1: illegal multibyte sequence

Python kingmo888 3359℃ 0评论

在使用python2.x/3.x做爬虫访问网页时,偶尔会遇到这个错误提示:

UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b in position 1: illegal multibyte sequence

假设获取到的数据为webdata,

webdata.decode(encoding='gbk', errors='ignore')当解码时加上忽略错误项的参数ignore后,可以解码出来,但是全部是乱码的话,就需要检查一下request的headers了。

我遇到的情况是这样的:

为了让访问更加友好,我设置了N多个headers的字典,每次随机抽取一个,有一个设置是:

'Accept-Encoding': 'gzip, deflate',

这个需要去掉,否则读取下来的数据就是压缩后的了。

转载请注明:Python量化投资 » 解决UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x8b in position 1: illegal multibyte sequence

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 一般用Chrome抓的连接配置Header
    Mr.Li2017-08-25 04:48 回复
    • 当然可以,一般我也用这样的配置。不过遇到需要大量访问时,目标网站的一些策略会根据你的headers和IP等综合判断,如果一直是同一个headers、短时间、大量IP,很有可能这些大量IP就被封杀了。
      kingmo8882017-08-25 08:43 回复