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 に答える