リクエストを使用して画像を効率的にダウンロードする方法
Python のリクエスト モジュールを使用して Web から画像をダウンロードする場合、リクエスト モジュールの適切な使用方法を理解することが重要です。応答要素。この記事では、画像のダウンロードにどの属性を利用するかという問題について説明します。
1 つのアプローチには、response.raw ファイル オブジェクトへのアクセスが含まれます。この方法では画像データに直接アクセスできますが、圧縮された応答を適切にデコードできるように decode_content 属性を設定する必要があります。その後、shutil.copyfileobj() 関数を使用して、データを目的のファイルにストリーミングできます。以下に例を示します。
import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f)
あるいは、応答を反復処理してデータを確実に解凍することもできます。このメソッドは、データがより小さいチャンクで処理されることを保証します。
import requests r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r: f.write(chunk)
Response.iter_content() メソッドを使用してチャンク サイズをカスタマイズできます。
import requests r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r.iter_content(1024): f.write(chunk)
宛先を開くことを忘れないでください。予期しない変換を避けるために、ファイルをバイナリ モードで保存してください。さらに、stream=True パラメータを設定すると、イメージ全体が一度にメモリにダウンロードされなくなります。これらのガイドラインに従うことで、Python のリクエスト モジュールを使用して画像を効率的にダウンロードできます。
以上がPython のリクエスト モジュールを使用して画像をダウンロードする最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。