无法解码urlopen的结果

2024-09-30 04:31:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python3中有以下代码

import urllib.request
f = urllib.request.urlopen("https://www.okcoin.cn/api/v1/trades.do?since=0")
a = f.read()  # there is data here
print(a.decode())  # error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

我可以在浏览器中获得https://www.okcoin.cn/api/v1/trades.do?since=0的可读结果。浏览器确认编码为UTF-8。在

我错过了什么? 谢谢


Tags: httpsapirequestwww浏览器byteurllibcn
3条回答

为什么不使用requests模块?在

^{1}$

对我来说很好:)

正如我在评论@yuvalpruss的回答中提到的,requests模块隐式地处理压缩数据,^{}也做了同样的事情,因为它支持gzip和deflate编码。下面是一个演示:

^{1}$

使用wget下载数据会发现数据实际上是 用gzip压缩。所以你需要先减压。有一个 gzip应该有用的模块。在

编辑:试试这个。在

^{1}$

相关问题 更多 >

    热门问题