python invalid start byte_html - python decode('utf-8')出现错误:invalid start byte?

写python爬虫,做下载器时,发现部分网页(一部分可以)无法通过decode('utf-8)去解码,查看网页,网页却是有这句,说明是UTF-8编码,为何无法解码?

部分网页解码失败的错误代码:

Traceback (most recent call last):

File "E:/python爬虫/test.py", line 13, in

print(data.decode('utf-8'))

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

这里是我获取html数据并进行解码的相关代码:

url = 'http://wiki.52poke.com/wiki/%E8%B7%AF%E5%8D%A1%E5%88%A9%E6%AC%A7'

req = urllib.request.Request(url)

res = urllib.request.urlopen(req)

data = res.read()

print(data)

print(data.decode('utf-8'))

输出(这里是解码失败的网页的data数据输出的结果)(这里只贴出部分,太多了)

b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xed\xbdys\x1bG\x96/\xfa\xf7\xe8S\xa0\xe1\xcbi{\xc6\xd8wJB\x07 Q\xe3~\xaf\xdd\xa3\xb1=3vx\xfa9@\xa2D\xa2\x05\x02\xb8\x00\xa8\xc5=\xfd\x02\x94Lq\'\xb5P\xd4Bj\xa1,J\xd4FR\x12-q\x15#\xde\xfd&\x16\xaa\x00\xc4\xbd\x11\xfe\n\xef\x9c\xcc\xaaBU\xa1\xb0\x14\tR\x90\x94\x9e\x1e\xb1\x90U\x95u2\xf3\xe4\xd9\xf2\xe4/\x0f\xfd\xee\xe8\xbf\x1e\xf9\xe6\xbb\xe3\x1d\xa6\x9elo

输出(解码成功的网页的代码)

b'\n\n

\n\n\xe6\x80\xaa\xe6\xb2\xb3\xe9\xa9\xac - \xe7\xa5\x9e\xe5\xa5\x87\xe5\xae\x9d\xe8\xb4\x9d\xe7\x99\xbe\xe7\xa7\x91\n\n

搞不懂为何部分会有!DOCTYPE html>\n\n

\n这种,而部分则是\xkk这种形式的代码?

搞了一早上了依旧不明白,我在猜是不是字节数的关系使得部分解码不了?希望有大神能解疑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值