Herunterladen einer Datei in Python
-
Verwendung von das Modul
requests
zum Herunterladen von Dateien in Python -
Verwendung des Moduls
urllib
zum Herunterladen von Dateien in Python -
Verwenden Sie das Modul
pycurl
, um Dateien in Python herunterzuladen
Python wird sehr häufig verwendet, um auf Ressourcen im Internet zuzugreifen. Wir können Anfragen und Verbindungen mit verschiedenen Bibliotheken generieren. Solche Bibliotheken können uns auch beim Herunterladen oder Lesen von HTTP-Dateien aus dem Internet helfen.
In diesem Tutorial werden wir Dateien in Python aus dem Internet herunterladen.
Verwendung von das Modul requests
zum Herunterladen von Dateien in Python
Mit dem Modul requests
können wir Informationen abrufen und Webseiten aus dem Internet lesen.
Die Methode get()
hilft, den Pfad der Datei von der angegebenen URL abzurufen, von der die Datei heruntergeladen werden soll. Die Methode open()
erstellt ein Dateiobjekt, in dem wir die Datei speichern möchten, und dann wird die Funktion write()
verwendet, um den Inhalt der Datei in den gewünschten Pfad zu schreiben.
Wir verwenden diese Funktionen, um eine Datei herunterzuladen, wie unten gezeigt.
import requests as req
URL = "https://www.facebook.com/favicon.ico"
file = req.get(url, allow_redirects=True)
open("facebook.ico", "wb").write(file.content)
Ausgabe:
1150
Der obige Code lädt eine Logo-Datei von Facebook von seiner URL herunter und speichert sie im Arbeitsverzeichnis. Wir können einen beliebigen Pfad in der Funktion open()
angeben, müssen ihn aber im wb
-Modus öffnen. Dies zeigt an, dass wir beabsichtigen, eine Datei im Binärmodus zu schreiben.
Das obige Beispiel eignet sich zum Herunterladen kleinerer Dateien, funktioniert jedoch bei großen Dateien nicht effizient. Die Funktion file.content
wird verwendet, um den Dateiinhalt als einzelnen String zu erhalten. Da wir im obigen Beispiel eine kleine Datei verwendet haben, funktionierte es einwandfrei.
Wenn wir eine große Datei herunterladen müssen, sollten wir die Funktion file.iter_content()
verwenden, in der wir die Chunk-Größe angeben. Es lädt die Daten in Form von Blöcken herunter.
Diese Funktion verwenden wir im folgenden Beispiel.
import requests
URL = "http://codex.cs.yale.edu/avi/db-book/db4/slide-dir/ch1-2.pdf"
file = requests.get(URL, stream=True)
with open("Python.pdf", "wb") as pdf:
for chunk in file.iter_content(chunk_size=1024):
if chunk:
pdf.write(chunk)
Verwendung des Moduls urllib
zum Herunterladen von Dateien in Python
Wir können auch die Bibliothek urllib
in Python zum Herunterladen und Lesen von Dateien aus dem Web verwenden. Dies ist ein URL-Handling-Modul, das verschiedene Funktionen hat, um die gegebene Aufgabe auszuführen.
Auch hier müssen wir die URL der herunterzuladenden Datei angeben. Die Methode urllib.request.urlopen()
ermittelt den Pfad der Datei und sendet eine Anfrage an den Server, von dem die Datei heruntergeladen wird.
Um Dateien herunterzuladen, können wir die Funktion urllib.request.urlretrieve()
verwenden. Es lädt die Ressource von der angegebenen Adresse herunter und speichert sie im bereitgestellten Verzeichnis.
Wir laden das Icon von Facebook mit dieser Methode im folgenden Beispiel herunter.
import urllib
urllib.request.urlretrieve("https://www.facebook.com/favicon.ico", "fb.ico")
Ausgabe:
('fb.ico', <http.client.HTTPMessage at 0x2d2d317a088>)
Die obige Ausgabe zeigt an, dass die Datei erfolgreich heruntergeladen wurde.
Verwenden Sie das Modul pycurl
, um Dateien in Python herunterzuladen
Mit diesem Modul können wir das Dateihandling verwenden, um Dateien aus dem Internet herunterzuladen. Zuerst müssen wir ein Dateiobjekt erstellen, für das wir die erforderliche Datei herunterladen möchten. Dann verwenden wir die Funktion pycurl.Curl()
, um ein Objekt zu erstellen und die Curl-Sitzung zu initiieren.
Die Methode setopt()
wird verwendet, um den URL-Wert der Datei zu setzen. Als nächstes führt die Funktion perform()
den Dateiübertragungsprozess vom Server durch, indem sie den HTTP-Request sendet. Als Nächstes schreiben wir die abgerufenen Daten mithilfe des Dateiobjekts in die Datei. Schließlich schließt die Methode close()
die Sitzung, und wir erhalten unsere Datei in das Arbeitsverzeichnis heruntergeladen.
Siehe den Code unten.
import pycurl
file_name = "fb.ico"
file_src = "https://www.facebook.com/favicon.ico"
with open(file_name, "wb") as f:
cl = pycurl.Curl()
cl.setopt(cl.URL, file_src)
cl.setopt(cl.WRITEDATA, f)
cl.perform()
cl.close()