Heim > Backend-Entwicklung > Python-Tutorial > Wie behebe ich Probleme beim Herunterladen von Bildern mit dem Anforderungsmodul von Python?

Wie behebe ich Probleme beim Herunterladen von Bildern mit dem Anforderungsmodul von Python?

Mary-Kate Olsen
Freigeben: 2024-12-21 08:24:11
Original
162 Leute haben es durchsucht

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

Fehlerbehebung beim Herunterladen von Bildern mit dem Anforderungsmodul

Frage:

Beim Versuch, ein Bild herunterzuladen Bei Verwendung des Requests-Moduls in Python schlägt der folgende Code fehl:

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)
Nach dem Login kopieren

Can Helfen Sie dabei, das Problem zu identifizieren und eine Lösung vorzuschlagen?

Antwort:

Um ein Bild mit dem Modul „Anfragen“ herunterzuladen, können Sie entweder das Dateiobjekt „response.raw“ oder verwenden Iterieren Sie die Antwort. Hier sind die Ansätze:

Verwendung von „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)
Nach dem Login kopieren

Dieser Ansatz erzwingt die Dekomprimierung komprimierter Antworten und verwendet „shutil.copyfileobj()“ zum Streamen der Daten ein Dateiobjekt.

Iterating Over Antwort:

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)
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass Daten dekomprimiert werden und liest die Daten in 128-Byte-Blöcken. Sie können die Blockgröße mit der Methode Response.iter_content() anpassen.

Zusätzliche Hinweise:

  • Öffnen Sie die Zieldatei im Binärmodus („wb“ ), um die Übersetzung von Zeilenumbrüchen zu verhindern.
  • Setzen Sie stream=True, um zu vermeiden, dass das gesamte Bild in den Speicher geladen wird.

Das obige ist der detaillierte Inhalt vonWie behebe ich Probleme beim Herunterladen von Bildern mit dem Anforderungsmodul von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage