UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte解决方法

爬取的网页信息的时候,使用decode('utf-8')解码的时候报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

使用read()方法查看爬取内容时发现它是以"b’\x1f\x8b\x08"开头的 ,说明它是gzip压缩过的数据,这也是报错的原因,所以我们需要对我们接收的字节码进行一个gzip解码操作。修改如下:

from urllib import request
from io import BytesIO
import gzip

url='https://www.douyu.com/'

r = request.urlopen(Spilder.url)
htmls = r.read()
buff = BytesIO(htmls)
f = gzip.GzipFile(fileobj=buff)
htmls = f.read().decode('utf-8')
print(htmls)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容