ホームページ >バックエンド開発 >Python チュートリアル >Python のリクエスト モジュールを使用して画像をダウンロードする最も効率的な方法は何ですか?

Python のリクエスト モジュールを使用して画像をダウンロードする最も効率的な方法は何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-16 02:21:13644ブラウズ

What's the Most Efficient Way to Download Images with Python's Requests Module?

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。