Python -Anfragen Download -Datei

Python -Anfragen Download -Datei

„Die Python Request Library ist eine der vielseitigsten und wertvollsten Bibliotheken im Python -Ökosystem. Seine Funktionen und die unglaubliche Einfachheit machen es lohnend, zahlreiche Python -Anwendungen zu betreiben.”

In diesem Tutorial wird uns beigebracht.

Installation und Setup

Bevor Sie die Anforderungen Methode verwenden, müssen Sie sicherstellen, dass sie in Ihrer Umgebung installiert ist. Sie können dies tun, indem Sie den PIP -Befehl wie gezeigt ausführen:

$ sudo pip Installieren Sie Anfragen


oder

$ sudo pip3 Installieren Sie Anfragen


Unter Windows können Sie den Befehl ausführen:

$ python -m PIP Installieren Sie Anfragen


Wenn Sie Conda installiert haben, führen Sie den Befehl aus:

Conda install -c Anaconda Anfragen

Beispiel 1 - Laden Sie eine einfache Datei herunter

Wir können eine Datei mit dem Anforderungsmodul herunterladen, indem wir die URL in die Datei angeben und das Python -Dateimodul verwenden, um den Inhalt in einen bestimmten Dateinamen zu schreiben.

Eine Beispielillustration ist unten gezeigt:

$ touch ~/download_image.py


Bearbeiten Sie die Datei und fügen Sie den Code hinzu:

$ vim ~/download_image.py
Anfragen importieren
url = 'https: // hochladen.Wikimedia.org/wikipedia/commons/a/af/tux.png '
r = Anfragen.Get (URL, degoR_redirects = true)
mit offenem ('Tux.png ',' wb ') als f:
F.Schriftsteller.Inhalt)


Im obigen Code beginnen wir mit dem Importieren des Anfragemoduls. Wir erstellen dann eine Variable, die die URL für die Datei hält, die wir herunterladen möchten. In diesem Fall möchten wir ein Bild herunterladen.

In der dritten Zeile erstellen wir ein HTTP -Antwortobjekt und stellen eine Get -Anforderung an die angegebene URL. Wir setzen auch die Zulassungen auf True, damit der Client die Ausleitungen folgen kann (falls vorhanden). Das Antwortobjekt wird dann in die Variable, die als R bezeichnet wird, gespeichert.

Speichern Sie schließlich das empfangene Objekt in einer Datei als TUX.PNG im Binärmodus.

Sie können dann das Verzeichnis überprüfen, in dem sich das Skript für den Smoking befindet.PNG -Datei.

Beispiel 2 - Download große Dateien

Im obigen Beispiel verwenden wir das r.Content Func, der die Datei als Zeichenfolge speichert. Dies ist praktisch beim Herunterladen kleiner Dateien. Beim Herunterladen großer Dateien wird die Funktion jedoch nicht über das Schreiben der angeforderten Daten gleichzeitig verarbeitet.

Um dies zu beheben, müssen wir die Datei als Streams herunterladen. Daher können wir den R verwenden.iter_content -Funktion und setzen Sie den Stream -Parameter auf true fest.

Dies liegt daran, dass die Verwendung der r verwendet wird.Content () Funktion mit dem Stream -Parameter zu True hält die Verbindung und die Antwort nur offen und lesen Sie die angegebene Datei nicht.

Das r.Mit Iter_Content -Funktion können wir dies beheben.

Ein Beispiel ist wie gezeigt:

Anfragen importieren
url = "https: // Hastie.su.Domänen/ISLR2/ISLRV2_Website.PDF "
r = Anfragen.get (URL, degoRe_redirects = true, stream = true)
mit offen ('islrv2.PDF ',' WB ') als Datei:
für Chunk in r.iter_content (chunk_size = 1024):
Wenn Chunk:
Datei.Schreiben Sie (Chunk)


Der obige Code verwendet eine für Schleife, um die Datenbrocken (jeweils 1024 Bytes) in die angegebene Datei zu schreiben.

Beispiel 3 - Dateityp vor dem Download überprüfen

Wir können die Art der von den Header empfangenen Inhalten überprüfen. Wir können diesen Wert dann verwenden, um zu überprüfen, ob die von uns heruntergeladene Datei korrekt ist.

Wenn wir beispielsweise eine ISO -Datei herunterladen und HTML- oder Texttyp erhalten möchten, wissen wir, dass dies eine falsche Datei ist und die Verbindung schließt.

Ein Beispielcode ist wie gezeigt:

Anfragen importieren
url = "https: // cdimage.Debian.org/debian-cd/current/amd64/iso-dvd/debian-11.4.0-AMD64-DVD-1.ISO "
r = Anfragen.get (URL, degoRe_redirects = true, stream = true)
H = Anfragen.Kopf (URL, erlaubte_redirects = true)
Header = h.Header
content_type = header.get ('Inhaltstyp')
Wenn 'html' in content_type.untere():
R.schließen()
print ("falscher Dateityp")
Wenn 'Text' in content_type ().untere():
R.schließen()
print ("falscher Dateityp")
anders:
mit offen ('islrv2.ISO ',' WB ') als Datei:
für Chunk in r.iter_content (chunk_size = 1024):
Wenn Chunk:
Datei.Schreiben Sie (Chunk)

Schließen

Sie haben gelernt, wie man eine Datei mit dem Python Request -Modul in diesem Artikel herunterlädt. Sie haben auch gelernt, wie man große Dateien herunterlädt.

Danke fürs Lesen!!