urllib y urllib2 sind beides Python-Module, die sich mit URL-Anfragen befassen, aber unterschiedliche Funktionalitäten bieten.
1) urllib2 kann ein Request-Objekt akzeptieren, um die Header für eine URL-Anfrage zu setzen, urllib akzeptiert nur eine URL.
2) urllib bietet die urlencode Methode, die für die Generierung von GET-Abfragezeichenfolgen verwendet wird, verfügt urllib2 nicht über eine solche Funktion. Dies ist einer der Gründe, warum urllib oft zusammen mit urllib2 verwendet wird.
Anfragen an - Requests" ist eine einfache, benutzerfreundliche HTTP-Bibliothek, die in Python geschrieben wurde.
1) Python Requests kodiert die Parameter automatisch, so dass Sie sie als einfache Argumente übergeben können, anders als im Fall von urllib, wo Sie die Methode urllib.encode() um die Parameter zu kodieren, bevor sie übergeben werden.
2) Es dekodiert die Antwort automatisch in Unicode.
3) Requests hat auch eine weitaus bequemere Fehlerbehandlung: Wenn die Authentifizierung fehlschlägt, würde urllib2 einen urllib2.URLError auslösen, während Requests wie erwartet ein normales Antwortobjekt zurückgibt. Alles, was Sie tun müssen, um zu sehen, ob die Anfrage erfolgreich war, ist ein Boolean Antwort.ok
25 Stimmen
Diese Frage sollte aktualisiert werden, um klarzustellen, dass
urllib
in Python 3 ist eine weitere Option, die auf verschiedene Weise bereinigt wurde. Aber glücklicherweise weist die offizielle Dokumentation auch darauf hin, dass " Das Paket Requests wird für eine übergeordnete HTTP-Client-Schnittstelle empfohlen. " unter 21.6. urllib.request - Erweiterbare Bibliothek zum Öffnen von URLs - Python 3.6.3 Dokumentation20 Stimmen
Leider habe ich keine Antworten gefunden, die mir sagen, was ich tun soll.
urllib3
ist und wieurllib3
unterscheidet sich von der offiziellenurllib
Modul.3 Stimmen
Wahrscheinlich erwähnenswert httpx - die neuere requests-backwords-kompatible async-Bibliothek.