ホームページ > バックエンド開発 > Python チュートリアル > Python のリクエスト モジュールを使用してイメージのダウンロードの問題を解決する方法

Python のリクエスト モジュールを使用してイメージのダウンロードの問題を解決する方法

Mary-Kate Olsen
リリース: 2024-12-21 08:24:11
オリジナル
163 人が閲覧しました

How to Fix Image Download Issues Using Python's Requests Module?

リクエスト モジュールを使用したイメージ ダウンロードのトラブルシューティング

質問:

イメージのダウンロード試行中Python の Requests モジュールを使用する場合、以下のコード失敗:

r = requests.get(settings.STATICMAP_URL.format(**data))
if r.status_code == 200:
    img = r.raw.read()
    with open(path, 'w') as f:
        f.write(img)
ログイン後にコピー

問題を特定して解決策を提案していただけますか?

回答:

リクエスト モジュールを使用してイメージをダウンロードするには、response.raw ファイル オブジェクトを利用するか、応答を反復処理することができます。アプローチは次のとおりです。

response.raw の使用:

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)
ログイン後にコピー

このアプローチでは、圧縮された応答を強制的に解凍し、shutil.copyfileobj() を使用してデータをストリーミングします。ファイル オブジェクト。

反復処理応答:

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)
ログイン後にコピー

このアプローチでは、データが確実に解凍され、128 バイトのチャンクでデータが読み取られます。 Response.iter_content() メソッドを使用してチャンク サイズをカスタマイズできます。

追加メモ:

  • 宛先ファイルをバイナリ モード ('wb') で開きます
  • 画像全体が読み込まれないようにするには、stream=True を設定します。記憶。

以上がPython のリクエスト モジュールを使用してイメージのダウンロードの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート