Wann würde jemand httplib und wann urllib verwenden?
Was sind die Unterschiede?
Ich glaube, ich bin bereit, dass urllib httplib verwendet. Ich plane, eine App zu erstellen, die eine http-Anfrage erstellen muss. Bisher habe ich in Python nur httplib.HTTPConnection für Anforderungen verwendet. Was ist der Nutzen des einen oder anderen?
urllib (insbesondere urllib2) behandelt viele Dinge standardmäßig oder verfügt über entsprechende Bibliotheken. Beispielsweise folgt urllib2 automatisch auf Weiterleitungen, und Sie können cookiejar verwenden, um Anmeldeskripts zu verarbeiten. Dies sind alles Dinge, die Sie selbst programmieren müssen, wenn Sie httplib verwenden.
Ich möchte etwas zu urllib
, urllib2
, httplib
und httplib2
sagen.
Der Hauptunterschied zwischen urllib*
und httplib*
ist folgender:
httplib und httplib2 verarbeitet HTTP/HTTPs-Anforderungen und -Antworten direkt und gibt Ihnen mehr Platz für Ihre eigenen Aufgaben.
urllib und urllib2 bauen auf httplib auf. Sie sind abstrakter und leistungsfähiger, erfüllen jedoch manchmal nicht Ihre spezifizierten Anforderungen hinsichtlich einiger HTTP-abhängiger Operationen.
Und für httplib
und httplib2
würde ich sagen, dass beide HTTP client library
sind. httplib2
ist jedoch viel leistungsfähiger und hat viel mehr Funktionen als httplib
.
Für urllib
und urllib2
zitieren Sie aus diesem Link :
urllib und urllib2 sind beide Python-Module, die URL-Anfragen abrufen, jedoch unterschiedliche Funktionen bieten. Ihre zwei wichtigsten Unterschiede sind unten aufgeführt:
- urllib2 kann ein Request-Objekt akzeptieren, um die Header für eine URL-Anforderung festzulegen. Urllib akzeptiert nur eine URL. Das bedeutet, dass Sie Ihre User Agent-Zeichenfolge usw. nicht maskieren können.
- urllib stellt die urlencode-Methode bereit, die für die Generierung von GET-Abfragezeichenfolgen verwendet wird. urllib2 hat keine solche Funktion. Dies ist einer der Gründe, warum Urllib häufig zusammen mit Urllib2 verwendet wird.
Ich würde meinen persönlichen Blog empfehlen Httplib Httplib2 Urllib Urllib2 - was ist der Unterschied .
Ich hoffe es hilft:-)
urllib/urllib2 basiert auf httplib. Es bietet mehr Funktionen als das direkte Schreiben auf httplib.
httplib gibt Ihnen jedoch eine genauere Kontrolle über die zugrunde liegenden Verbindungen.
Wenn Sie sich ausschließlich mit http/https beschäftigen und Zugriff auf HTTP-spezifische Daten benötigen, verwenden Sie httplib.
Verwenden Sie in allen anderen Fällen urllib2.
Wenn Sie hochrangiges Material wie Caching, Keep-Alive, Komprimierung oder Authentifizierung benötigen, versuchen Sie try httplib2
.
Für die Leute, die Dinge auf Py3 hochstufen (und aus irgendeinem Grund nicht umgestaltet werden können, um das großartige Modul request zu verwenden), ist dies ein guter Übergang zwischen den Versionen:
try:
import http.client as httplib
except ImportError:
import httplib
Funktioniert in beiden Python-Versionssätzen.