Python Internetzugriff mit Urllib.Request und urlopen()
โก Intelligente Zusammenfassung
urllib ist der Standard Python Modul fรผr den Zugriff auf Internetdaten, das das รffnen von Programmen ermรถglicht URLs und rufen HTML-, JSON- oder Binรคrinhalte ab. Die Funktion urllib.request.urlopen() stellt eine Verbindung zu einer Webadresse her und liest die Serverantwort direkt ein. Python.

Die folgenden Abschnitte erklรคren, was urllib ist und wie man eine Datei รถffnet. URL und den HTML-Code zu lesen, sowie zu lernen, wie man mit Fehlern umgeht, Dateien herunterlรคdt und zwischen urllib und der requests-Bibliothek wรคhlt.
Was ist URLlib?
urllib ist ein Python Modul, das zum รffnen verwendet werden kann URLs. Es definiert Funktionen und Klassen, die dabei helfen URL Aktionen.
Mit PythonSie kรถnnen auch Daten aus dem Internet abrufen, beispielsweise XML-, HTML- und JSON-Daten, und diese dann direkt bearbeiten. In den folgenden Abschnitten erfahren Sie, wie Sie Daten aus dem Web abrufen. Hier verwenden wir beispielsweise โฆ Guru99 Video URL, greifen Sie darauf zu mit Pythonund drucken Sie die HTML-Datei davon aus URL.
Das urllib-Paket fasst mehrere Module zusammen: urllib.request zum รffnen URLs, urllib.error fรผr die Ausnahmen, die Anfragen auslรถsen kรถnnen, urllib.parse fรผr das Erstellen und Parsen URLs und urllib.robotparser zum Lesen von robots.txt-Dateien.
Wie รffnen URL Verwendung von Urllib
Bevor wir den Code zum Herstellen einer Internetverbindung ausfรผhren, mรผssen wir die URL Bibliotheksmodul oder โurllibโ.
- URLlib importieren
- Definieren Sie Ihre Hauptfunktion
- Deklarieren Sie die Variable webUrl
- Rufen Sie anschlieรend die Funktion urlopen der Bibliothek urllib auf.
- Das URL Wir erรถffnen das Guru99 Tutorial zu YouTube
- Als Nรคchstes geben wir den Ergebniscode aus.
- Der Ergebniscode wird durch Aufruf der Funktion โgetcodeโ fรผr die von uns erstellte Variable โwebUrlโ abgerufen.
- Wir wandeln diesen Wert in eine Zeichenkette um, damit er mit unserer Zeichenkette โErgebniscodeโ verkettet werden kann.
- Dies ist der regulรคre HTTP-Code โ200โ, der anzeigt, dass die HTTP-Anfrage erfolgreich verarbeitet wurde.
Wie man eine HTML-Datei aus einem URL in Python
Sie kรถnnen die HTML-Datei auch mit der Funktion read() lesen. PythonWenn Sie den Code ausfรผhren, wird die HTML-Datei in der Konsole angezeigt.
- Rufen Sie die Funktion read() fรผr die Variable webUrl auf.
- Die Methode read() ermรถglicht es Ihnen, den Inhalt von Datendateien zu lesen.
- Lesen Sie den gesamten Inhalt des URL in einer Variablen namens Daten
- Fรผhren Sie den Code aus, und die Daten werden im HTML-Format ausgegeben.
Hier ist der vollstรคndige Code:
Python 2 Beispiel
# # read the data from the URL and print it # import urllib2 def main(): # open a connection to a URL using urllib2 webUrl = urllib2.urlopen("https://www.youtube.com/user/guru99com") #get the result code and print it print "result code: " + str(webUrl.getcode()) # read the data from the URL and print it data = webUrl.read() print data if __name__ == "__main__": main()
Python 3 Beispiel
# # read the data from the URL and print it # import urllib.request # open a connection to a URL using urllib webUrl = urllib.request.urlopen('https://www.youtube.com/user/guru99com') #get the result code and print it print ("result code: " + str(webUrl.getcode())) # read the data from the URL and print it data = webUrl.read() print (data)
Umgang mit urllib-Fehlern: URLFehler und HTTP-Fehler
Eine Anfrage ist nicht immer erfolgreich. Wenn ein Fehler auftritt, lรถst urllib eine Ausnahme aus, anstatt Daten zurรผckzugeben. Daher ist es wichtig, diese Fehler zu behandeln. Das Modul urllib.error definiert zwei Hauptklassen fรผr Ausnahmen.
- HTTP-Fehler Diese Ausnahme wird ausgelรถst, wenn der Server einen Fehlerstatuscode zurรผckgibt, z. B. 404 Nicht gefunden oder 500 Interner Serverfehler. Sie enthรคlt den Statuscode und den Antworttext.
- URLFehler Diese Ausnahme wird ausgelรถst, wenn der Server รผberhaupt nicht erreichbar ist, beispielsweise aufgrund eines falschen Domainnamens oder fehlender Internetverbindung. Sie enthรคlt ein Attribut namens โreasonโ, das den Fehler erklรคrt.
Weil HTTPError eine Unterklasse von URLFehler, fangen Sie immer zuerst HTTPError ab, damit jeder Fehlertyp separat behandelt wird:
from urllib.request import urlopen from urllib.error import HTTPError, URLError try: response = urlopen("https://www.guru99.com/no-such-page.html") data = response.read() except HTTPError as error: print("HTTP error:", error.code) except URLError as error: print("URL error:", error.reason)
Durch die Behandlung dieser Ausnahmen wird ein Absturz Ihres Programms verhindert und Sie kรถnnen das Problem protokollieren, die Anfrage wiederholen oder auf zwischengespeicherte Daten zurรผckgreifen.
Wie man eine Datei von einem URL Verwendung von urllib
Ein ... Lesen URL Das Speichern im Arbeitsspeicher funktioniert fรผr kleine Seiten, aber fรผr Bilder, PDF-Dokumente oder Datensรคtze ist es einfacher, die Antwort direkt auf der Festplatte zu speichern. Das Modul urllib.request bietet zwei einfache Mรถglichkeiten hierfรผr.
Die Funktion urlretrieve() lรคdt eine URL herunter. URL direkt in eine lokale Datei in einer einzigen Zeile:
from urllib.request import urlretrieve urlretrieve("https://www.python.org/static/img/python-logo.png", "logo.png")
Fรผr mehr Kontrolle รถffnen Sie die URL und schreiben Sie die Bytes selbst. รffnen Sie die lokale Datei im Binรคrmodus, da urlopen() Bytes und nicht Text zurรผckgibt:
from urllib.request import urlopen with urlopen("https://example.com/data.zip") as response: with open("data.zip", "wb") as file: file.write(response.read())
Bei sehr groรen Dateien sollten Sie in einer Schleife mit response.read(8192) lesen und schreiben, damit nie die gesamte Datei gleichzeitig im Speicher gehalten wird.
urllib vs. die requests-Bibliothek in Python
urllib ist Teil von Python Die Bibliothek ist standardmรครig integriert und funktioniert daher รผberall ohne Installation. Die Drittanbieterbibliothek โrequestsโ ist nicht standardmรครig enthalten, wird aber von vielen Entwicklern fรผr die alltรคgliche HTTP-Kommunikation bevorzugt, da ihre Syntax kรผrzer und besser lesbar ist.
Die Hauptunterschiede sind:
- Installation: urllib wird mitgeliefert Python, wรคhrend requests mit pip installiert werden muss.
- Dekodierung: urllib gibt rohe Bytes zurรผck, die Sie selbst dekodieren mรผssen, wรคhrend requests Text und JSON automatisch dekodiert.
- Bequemlichkeit: requests verarbeitet Sitzungen, Cookies und benutzerdefinierte Header mit weniger Code.
- Abhรคngigkeiten: urllib fรผgt keine hinzu, wรคhrend requests auf urllib3 basiert.
Wรคhlen Sie urllib, wenn Sie keine Abhรคngigkeiten benรถtigen oder nur eine kurze, einmalige Anfrage stellen mรถchten. Fรผr grรถรere Projekte mit Authentifizierung, Sitzungen oder hรคufigen API-Aufrufen empfiehlt sich requests. Beide Bibliotheken verwenden dieselben HTTP-Anfragen; die Entscheidung hรคngt also von der Bequemlichkeit oder einer kรผrzeren Liste an Abhรคngigkeiten ab.


