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