wake-up-neo.com

Python urllib vs httplib?

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?

51
jahmax

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.

45
Robus

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:-)

17
Lihang Li

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.

9
Corey Goldberg

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.

6
Matt Joiner

Wenn Sie hochrangiges Material wie Caching, Keep-Alive, Komprimierung oder Authentifizierung benötigen, versuchen Sie try httplib2 .

5
optixx

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.

0
Cometsong