Bild in Python herunterladen

Muhammad Maisam Abbas 11 Dezember 2023
  1. Bild herunterladen mit dem urllib-Paket in Python
  2. Bild herunterladen mit der requests-Bibliothek in Python
Bild in Python herunterladen

In diesem Lernprogramm werden einige der bekanntesten Methoden zum Herunterladen eines Bildes aus dem Internet mit Python besprochen.

Bild herunterladen mit dem urllib-Paket in Python

Das Paket urllib (https://docs.python.org/3/library/urllib.html) ist eine Sammlung von verschiedenen Modulen für die Arbeit mit URLs. urllib.request ist ein Modul, das zum Öffnen und Lesen von Inhalten auf URLs verwendet wird. In diesem Lernprogramm werden wir Python verwenden, um eine Bilddatei von https://www.python.org/images/success/nasa.jpg herunterzuladen. Im Modul urllib.request können zwei Methoden zum Herunterladen eines Bildes verwendet werden, die im Folgenden erläutert werden.

Bild herunterladen mit der Methode urllib.request.urlretrieve(url, filename)

Das folgende Codebeispiel zeigt, wie wir ein Bild in Python mit der Methode urlretrieve(url, filename) herunterladen können.

import urllib.request

urllib.request.urlretrieve("https://www.python.org/images/success/nasa.jpg", "NASA.jpg")

print("download successful")

Ausgabe:

download successful

Der obige Code lädt das Bild in das aktuelle Arbeitsverzeichnis herunter. Die Methode urlretrieve(url, filename) nimmt als Argumente die Bild-URL und den Dateinamen, unter dem das Bild gespeichert werden soll. Die Methode urlretrieve(url, filename) ist in der offizielle Dokumentation unter der Legacy-Schnittstelle aufgeführt, was bedeutet, dass die Methode urlretrieve(url, filename) in Zukunft veraltet sein wird.

Bild herunterladen mit urllib.request.urlopen(url)

Um die unvermeidliche Verwerfung der Methode urlretrieve(url, filename) zu umgehen, kann die Methode urlopen(url) mit Dateibehandlung verwendet werden. Laut der offiziellen Python-Dokumentation wird die Methode urlopen(url) zum Öffnen einer beliebigen URL verwendet.

Das folgende Codebeispiel zeigt, wie wir ein Bild mit der Methode urlopen(url) mit Dateiverwaltung herunterladen können.

import urllib.request

f = open("NASA2.jpg", "wb")
f.write(urllib.request.urlopen("https://www.python.org/images/success/nasa.jpg").read())
f.close()
print("download successful")

Ausgabe:

download successful

Im obigen Code öffnen wir zunächst eine Datei namens NASA2.jpg im Modus Binärdateien schreiben mit der Methode open(filename, mode). In der nächsten Zeile schreiben wir den aus der URL gelesenen Inhalt mit der Methode write() in die Datei. Danach schließen wir die Datei mit der Methode close().

Bild herunterladen mit der requests-Bibliothek in Python

Die requests ist eine Python-Bibliothek, die wir verwenden können, um HTTP/1.1-Anfragen an den Server zu senden. Wir können eine GET-Anfrage an die URL senden, indem wir die Methode get(url) in der requests-Bibliothek verwenden, um die Bilddatei von der URL zu holen und sie dann mit Hilfe der Dateibehandlung zu speichern.

Das folgende Codebeispiel zeigt, wie wir ein Bild unter Verwendung der requests-Bibliothek mit Dateibehandlung herunterladen können.

import requests

f = open("NASA3.jpg", "wb")
response = requests.get("https://www.python.org/images/success/nasa.jpg")
f.write(response.content)
f.close()

print("download successful")

Ausgabe:

download successful

Im obigen Code öffnen wir zunächst eine Datei mit dem Namen NASA3.jpg im Modus write binaries mit der Methode open(filename, mode).

In der nächsten Zeile speichern wir die Antwort von unserer GET-Anfrage in der Variablen response.

Danach schreiben wir den binären Inhalt von response mit der Methode write() in die Datei.

Schließlich schließen wir die Datei mit der Methode close().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Python Image