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)
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)
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)
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:
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!