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

在使用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',

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

评论 (3)
  1. 沙发
    Mr.Li 2017-08-25 04:48

    一般用Chrome抓的连接配置Header

    • 回复
      kingmo888 2017-08-25 08:43
      @Mr.Li 当然可以,一般我也用这样的配置。不过遇到需要大量访问时,目标网站的一些策略会根据你的headers和IP等综合判断,如果一直是同一个headers、短时间、大量IP,很有可能这些大量IP就被封杀了。
  2. 板凳
    6 天前

    2018网赚新项目,抢先机–我的座右铭:做不到日赚万元,死不瞑目!一辈子只做好一件事!

    1.2018年最有潜力的赚钱项目,目前红利期不要错过。

    2.稳定,每天赚个500-1000左右,我已经持续了一个多月,不然我也教不了你。

    3.正规项目,可以长期操作。真正想赚钱的我可以教你,你赚了钱再来拜师。

    4.好项目经得起考验,绝对不是垃圾项目,说的再好,你不做也是枉然。

    5.虽然我不是大师,但是我能带你月赚万元绝没问题,直接复制我的就OK,不懂手把手教。

    做网赚,别想一步登天,不是每个人都能赚钱的。如果,你没有坚定的信念,还是老老实实去上 班吧!

    想清楚了再加我的微信,我要的是你勇往向前的决心,微信sgvg6666 (写验证码126,加我必通过)

    我的座右铭:做不到日赚万元,死不瞑目!一辈子只做好一件事!