python 3.6 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte错误
网站返回的是gzip压缩过的数据,所以要进行解码
# coding=utf-8 from io import BytesIO import gzip import urllib.request url = ('http://wthrcdn.etouch.cn/weather_mini?city=%E4%B8%8A%E6%B5%B7') resp = urllib.request.urlopen(url) content = resp.read() # content是压缩过的数据 buff = BytesIO(content) # 把content转为文件对象 f = gzip.GzipFile(fileobj=buff) res = f.read().decode('utf-8') print(res)