UnicodeDecodeError: 'utf-8' code

2020-04-04  本文已影响0人  忘了呼吸的那只猫

爬取的网页信息的时候,使用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)

上一篇下一篇

猜你喜欢

热点阅读