我正在尝试使用Python 2从服务器下载大文件:
req = urllib2.Request("https://myserver/mylargefile.gz")
rsp = urllib2.urlopen(req)
data = rsp.read()
服务器通过“ Transfer-Encoding:chunked”发送数据,而我只得到一些二进制数据,不能通过gunzip解压缩。
我是否必须遍历多个read()?还是多个请求?如果是这样,它们的外观如何?
注意:我试图仅使用Python 2标准库来解决此问题,而没有诸如urllib3或请求之类的其他库。这甚至可能吗?
如果我没记错的话,以下内容对我有用-前一阵子:
data = ''
chunk = rsp.read()
while chunk:
data += chunk
chunk = rsp.read()
每个read
读取一个块-因此继续读取,直到不再有其他字符为止。还没有准备好文档支持这一点...]
摘自urllib2.urlopen上的python文档:
我有同样的问题。