解决UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x8b in position 1: illegal multibyte sequence – Python量化投资

解决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',

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

新星帝国下载
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
2 条回复 A 作者 M 管理员
  1. 一般用Chrome抓的连接配置Header

    • 当然可以,一般我也用这样的配置。不过遇到需要大量访问时,目标网站的一些策略会根据你的headers和IP等综合判断,如果一直是同一个headers、短时间、大量IP,很有可能这些大量IP就被封杀了。

欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论