'utf-8'报错的问题 不知道错在哪

新手上路,请多包涵

产生这样的报错'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
我代码:
from urllib import request
url = "http://odds.500.com/fenxi/yazhi-749525.shtml"
headers = {

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"
}

req = request.Request(url)
resp = request.urlopen(req)
a = resp.read()
print(a.decode('utf-8'))### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 2.1k
1 个回答

网页经过了gzip压缩,需要解压:

from urllib import request
import gzip

url = "http://odds.500.com/fenxi/yazhi-749525.shtml"
headers = {

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"
}
req = request.Request(url)
resp = request.urlopen(req)
f = gzip.decompress(resp.read())
print(f.decode('gbk'))

更推荐直接使用requests库:

import requests
url = "http://odds.500.com/fenxi/yazhi-749525.shtml"
content = requests.get(url).content

print(content.decode('gbk'))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题