Heim > Backend-Entwicklung > Python-Tutorial > Wie lade ich Bilder mithilfe der Requests-Bibliothek von Python effizient herunter?

Wie lade ich Bilder mithilfe der Requests-Bibliothek von Python effizient herunter?

Linda Hamilton
Freigeben: 2025-01-02 22:12:41
Original
1010 Leute haben es durchsucht

How to Efficiently Download Images Using Python's Requests Library?

Bilder mit Anfragen herunterladen

Das Herunterladen von Bildern aus dem Web mit dem Anfragemodul von Python kann eine unkomplizierte Aufgabe sein. Beim Wechsel von urllib2 zu Anfragen ist es jedoch wichtig, die Unterschiede in den Attributen zu verstehen, die zum Abrufen der Bilddaten verwendet werden.

Zunächst las der Code, der urllib2 verwendet, das Bild mit img.read(), während das gewünschte Ansatz mit Anfragen hat img = r.raw.read(). Dies ist falsch, da r.raw ein Dateiobjekt und nicht die tatsächlichen Bilddaten ist.

Um dieses Problem zu beheben, gibt es zwei praktikable Lösungen:

  • Verwenden das Response.raw-Dateiobjekt:

    Setzen Sie decode_content auf True, um die Dekomprimierung komprimierter Antworten zu erzwingen. Dadurch können Sie die Daten mithilfe von Shutil.copyfileobj() in ein Dateiobjekt streamen.

    import requests
    import shutil
    
    r = requests.get(url, 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
  • Iterieren über die Antwort:

    Diese Methode stellt die Datendekomprimierung sicher.

    r = requests.get(url, stream=True)
    if r.status_code == 200:
        with open(path, 'wb') as f:
            for chunk in r:
                f.write(chunk)
    Nach dem Login kopieren

    Alternativ können Sie eine benutzerdefinierte Blockgröße mit angeben Response.iter_content().

    r = requests.get(url, stream=True)
    if r.status_code == 200:
        with open(path, 'wb') as f:
            for chunk in r.iter_content(1024):
                f.write(chunk)
    Nach dem Login kopieren

Denken Sie daran, die Zieldatei im Binärmodus ('wb') zu öffnen, um zu verhindern, dass Zeilenumbrüche übersetzt werden. Legen Sie außerdem stream=True fest, um zu verhindern, dass das gesamte Bild in den Speicher heruntergeladen wird.

Das obige ist der detaillierte Inhalt vonWie lade ich Bilder mithilfe der Requests-Bibliothek von Python effizient herunter?. 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