8

我在 python-requests v. 2.0.1 中流式下载大文件(大约 1.5 GB)有问题

with open("saved.rar",'wb') as file:
    r = session.get(url,stream=True,timeout=3600)
    for chunk in r.iter_content(chunk_size=1024):
        if chunk:
            file.write(chunk)
            file.flush()

我在我的 vps 上测试了几次,有时它下载了 200mb、500mb 或 800mb 并保存它没有任何错误。它没有达到超时,就像完成下载一样停止。

我下载这个文件的主机是稳定的,因为我在浏览器中下载这个文件没有任何问题。

有什么方法可以在 python-requests 中下载大文件并 100% 确定它的整个文件?

@编辑

我已经使用 urllib 解决了它,问题仅在于请求。无论如何感谢您的帮助。

4

1 回答 1

0

可能有几个问题会导致下载中断。网络问题等。但是我们在开始下载之前知道文件大小以检查您是否下载了整个文件,您可以使用 urllib 执行此操作:

site = urllib.urlopen("http://python.org")
meta = site.info()
print meta.getheaders("Content-Length")

使用请求:

r = requests.get("http://python.org")
r.headers["Content-Length"]
于 2013-11-01T13:10:55.080 回答