1. ホーム
  2. python

[解決済み] Pythonのリクエストライブラリを使って大きなファイルを保存する [重複]。

2023-04-08 21:33:17

質問

重複の可能性があります。

リクエストを使用して画像をダウンロードする方法

URLを取得するのは、単純に requests.get で、生のレスポンスボディを取得してファイルに保存することができますが、大きなファイルの場合、ファイルに直接ストリーミングする方法はあるのでしょうか?私がそれで映画をダウンロードする場合、または何か?

どのように解決するのですか?

奇妙なことに、リクエストはこのためのシンプルなものを持ちません。レスポンスを繰り返し処理し、それらのチャンクをファイルに書き込む必要があります。

response = requests.get('http://www.example.com/image.jpg', stream=True)

# Throw an error for bad status codes
response.raise_for_status()

with open('output.jpg', 'wb') as handle:
    for block in response.iter_content(1024):
        handle.write(block)

私は通常 urllib.urlretrieve() . これは動作しますが、セッションや何らかの認証を使用する必要がある場合は、上記のコードも動作します。