So laden Sie Dateien in Python herunter

Python bietet mehrere Möglichkeiten, um Dateien aus dem Internet herunterzuladen. Dies kann über HTTP mit dem Paket urllib oder der Anforderungsbibliothek erfolgen. In diesem Lernprogramm wird erläutert, wie Sie diese Bibliotheken verwenden, um Dateien mit Python von URLs herunterzuladen.

ANFORDERUNGEN

Die Anforderungsbibliothek ist eine der beliebtesten Bibliotheken in Python. Anfragen können Sie senden  HTTP / 1.1-Anforderungen, ohne dass Sie Abfragezeichenfolgen manuell zu Ihren URLs hinzufügen oder Ihre POST-Daten formularkieren müssen.

Mit der Anforderungsbibliothek können Sie viele Funktionen ausführen, darunter:

  • Formulardaten hinzufügen,
  • Hinzufügen von mehrteiligen Dateien,
  • und auf die Antwortdaten von Python zugreifen

ANFRAGEN

Als Erstes müssen Sie die Bibliothek installieren. Es ist so einfach wie:

Pip-Installationsanfragen

Um zu testen, ob die Installation erfolgreich war, können Sie einen einfachen Test in Ihrem Python-Interpreter durchführen, indem Sie einfach Folgendes eingeben:

Importanfragen

Wenn die Installation erfolgreich war, werden keine Fehler angezeigt.

HTTP-Anforderungen umfassen:

  • ERHALTEN
  • POST
  • STELLEN
  • LÖSCHEN
  • OPTIONEN
  • KOPF

GET-Anfrage stellen

Das Erstellen von Anfragen ist sehr einfach (siehe unten).

Anforderungen importieren req = request.get ("http://www.google.com")

Der obige Befehl ruft die Google-Webseite auf und speichert die Informationen in derreq Variable. Wir können dann auch andere Attribute erhalten.

Um beispielsweise zu erfahren, ob das Abrufen der Google-Website erfolgreich war, werden wir den Statuscode abfragen.

Anforderungen importieren req = request.get ("http://www.google.com") req.status_code 200 # 200 bedeutet eine erfolgreiche Anfrage

Was ist, wenn wir die Kodierungsart der Google-Webseite herausfinden möchten?

erforderliche Kodierung nach ISO-8859-1

Möglicherweise möchten Sie auch den Inhalt der Antwort erfahren.

req.text

Dies ist nur ein abgeschnittener Inhalt der Antwort.

'Google>

Eine POST-Anfrage stellen

In einfachen Worten, eine POST-Anforderung zum Erstellen oder Aktualisieren von Daten. Dies wird insbesondere bei der Einreichung von Formularen verwendet.

Nehmen wir an, Sie haben ein Anmeldeformular, das eine E-Mail-Adresse und ein Kennwort als Eingabedaten enthält. Wenn Sie auf die Schaltfläche "Senden" klicken, wird die Post-Anfrage wie folgt angezeigt.

data = "email": "[email protected]", "Passwort": "12345") req = request.post ("http://www.google.com, params = data)

Eine PUT-Anfrage erstellen

Eine PUT-Anforderung ähnelt einer POST-Anforderung. Es wird zum Aktualisieren von Daten verwendet. Für die folgende Instanz zeigt die API, wie a ausgeführt wird STELLEN anfordern.

data = "name": "tutsplus", "phone": "12345") r.put ("http://www.contact.com, params = data")

Eine DELETE-Anfrage erstellen

Eine DELETE-Anforderung wird, wie der Name schon sagt, zum Löschen von Daten verwendet. Unten ist ein Beispiel von a LÖSCHEN anfordern

data = 'name': 'Tutsplus' url = "https://www.contact.com/api/") antwort = request.delete (url, params = data)

Urllib-Paket

Urllib ist ein Paket, das mehrere Module für das Arbeiten mit URLs sammelt, und zwar:

  • urllib.antrag zum Öffnen und Lesen von URLs.
  • urllib.error enthält die von urllib.antrag
  • urllib.parse zum Analysieren von URLs.
  • urllib.robotparser zum Parsen robots.txt Dateien.

urllib.antrag  bietet eine sehr einfache Schnittstelle in Form des urlopen Funktion zum Abrufen von URLs mit verschiedenen Protokollen. Es bietet auch eine etwas komplexere Schnittstelle für die Basisauthentifizierung, Cookies, Proxies e.t. c.

Wie man URLs mit urllib abruft

Urllib.request kann am einfachsten verwendet werden:

Importiere urllib.request mit urllib.request.urlopen ('http://python.org/') als Antwort: html = response.read () 

Wenn Sie eine Internetressource abrufen und speichern möchten, können Sie dies über die urlretrieve () Funktion.

urllib.request dateiname importieren, headers = urllib.request.urlretrieve ('http://python.org/') html = open (Dateiname) 

Bilder mit Python herunterladen

In diesem Beispiel möchten wir das auf diesem Link verfügbare Bild mit dem Request llibrary- und dem urllib-Modul herunterladen. 

url = 'https://www.python.org/static/opengraph-icon-200x200.png' # Herunterladen mit urllib # importierte die urllib-Bibliothek import urllib # Kopieren Sie ein Netzwerkobjekt in eine lokale Datei urllib.urlretrieve (url, " python.png ") # Herunterladen mit Anforderungen # Importieren der Anforderungen Bibliothek Importieren von Anforderungen # Laden Sie den URL-Inhalt im Binärformat herunter r = request.get (URL) # open-Methode, um eine Datei auf Ihrem System zu öffnen und den Inhalt mit open zu schreiben (" python1.png "," wb ") als Code: code.write (r.content) 

PDF-Dateien mit Python herunterladen

In diesem Beispiel laden wir eine PDF-Datei über Google Trends von diesem Link herunter.

url = 'https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf' # herunterladen mit urllib # importieren des urllib-Pakets import urllib # Kopieren Sie ein Netzwerkobjekt in ein Lokale Datei urllib.urlretrieve (url, "tutorial.pdf") # Herunterladen mit Anforderungen # Importieren der Anforderungen Bibliothek Importieren von Anforderungen # Laden Sie den Dateiinhalt im Binärformat herunter r = request.get (URL) # Öffnen Sie eine Datei auf Ihrem Computer System und schreiben Sie den Inhalt mit open ("tutorial1.pdf", "wb") als Code: code.write (r.content) 

Zip-Dateien mit Python herunterladen

In diesem Beispiel werden wir den Inhalt eines GitHub-Repositorys herunterladen, das sich in diesem Link befindet, und die Datei lokal speichern.

url = 'https://codeload.github.com/fogleman/Minecraft/zip/master' # Herunterladen mit Anforderungen # Importieren der Anforderungen Bibliotheksimportanforderungen # Laden Sie den Dateiinhalt im Binärformat herunter r = request.get (url) # offen Methode zum Öffnen einer Datei auf Ihrem System und Schreiben des Inhalts mit open ("minemaster1.zip", "wb") als Code: code.write (r.content) # Herunterladen mit urllib # importieren der urllib-Bibliothek import urllib # Kopieren a Netzwerkobjekt in eine lokale Datei urllib.urlretrieve (URL, "minemaster.zip") 

Videos mit Python herunterladen

In diesem Beispiel möchten wir die auf dieser Seite verfügbare Video-Vorlesung herunterladen

url = "https://www.youtube.com/watch?v=aDwCCUfNFug" video_name = url.split ('/') [- 1] # verwendet Anforderungen # importiert die Anforderungen der Bibliotheksimportanforderungen "Download-Datei:% s "% video_name # Laden Sie den URL-Inhalt im Binärformat herunter. r = request.get (url) # open-Methode, um eine Datei auf Ihrem System zu öffnen und den Inhalt mit open ('tutorial.mp4', 'wb') als f: f zu schreiben .write (r.content) # mit urllib # importierte die urllib-Bibliothek import urllib print "Download-Datei:% s"% video_name # Kopieren Sie ein Netzwerkobjekt in eine lokale Datei urllib.urlretrieve (url, "tutorial2.mp4") 

Fazit

In diesem Lernprogramm wurden die am häufigsten verwendeten Methoden zum Herunterladen von Dateien sowie die am häufigsten verwendeten Dateiformate behandelt. Obwohl Sie weniger Code schreiben, wenn Sie die Urllib Modul, das Anfragen Das Modul wird aufgrund seiner Einfachheit, Beliebtheit und einer breiten Palette von Funktionen bevorzugt, darunter:

  • Keep-Alive & Verbindungspooling
  • Internationale Domains und URLs
  • Sitzungen mit Cookie-Persistence
  • SSL-Überprüfung im Browser-Stil
  • Automatische Inhaltsdekodierung
  • Basic / Digest-Authentifizierung
  • Elegante Schlüssel- / Wert-Cookies
  • Automatische Dekomprimierung
  • Unicode-Antwortkörper
  • HTTP (S) Proxy-Unterstützung
  • Mehrteilige Datei-Uploads
  • Streaming-Downloads
  • Verbindungs-Timeouts
  • Chunked Requests
  • .netrc Unterstützung