如何使用Pythons urllib2下载分块数据

问题描述 投票:2回答:3

我正在尝试使用Python 2从服务器下载大文件:

req = urllib2.Request("https://myserver/mylargefile.gz")
rsp = urllib2.urlopen(req)
data = rsp.read()

服务器通过“ Transfer-Encoding:chunked”发送数据,而我只得到一些二进制数据,不能通过gunzip解压缩。

我是否必须遍历多个read()?还是多个请求?如果是这样,它们的外观如何?

注意:我试图仅使用Python 2标准库来解决此问题,而没有诸如urllib3或请求之类的其他库。这甚至可能吗?

python download urllib2 chunked transfer-encoding
3个回答
1
投票

如果我没记错的话,以下内容对我有用-前一阵子:

data = ''
chunk = rsp.read()
while chunk:
    data += chunk
    chunk = rsp.read()

每个read读取一个块-因此继续读取,直到不再有其他字符为止。还没有准备好文档支持这一点...]


0
投票

摘自urllib2.urlopen上的python文档:


0
投票

我有同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.