重複の可能性:
リクエストを使用して画像をダウンロードする方法
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()
。これは機能しますが、セッションまたは何らかの認証を使用する必要がある場合は、上記のコードも機能します。