Quand est-ce que quelqu'un utiliserait httplib et quand urllib?
Quelles sont les différences?
Je pense que je suis prêt à utiliser urllib avec httplib, je prévois de créer une application qui nécessitera une requête http et je n’ai utilisé jusqu’à présent que httplib.HTTPConnection en python pour les requêtes. Alors, quel est l'avantage de l'un ou l'autre?
urllib (en particulier urllib2) gère beaucoup de choses par défaut ou a les bibliothèques appropriées pour le faire. Par exemple, urllib2 suivra automatiquement les redirections et vous pouvez utiliser cookiejar pour gérer les scripts de connexion. Ce sont toutes des choses que vous auriez à vous coder si vous utilisiez httplib.
J'aimerais dire quelque chose à propos de urllib
, urllib2
, httplib
et httplib2
.
La principale différence entre urllib*
et httplib*
est la suivante:
httplib et httplib2 traitent directement les requêtes et les réponses HTTP/HTTPs et vous donnent plus d'espace pour effectuer votre propre travail.
urllib et urllib2 sont construits sur httplib, ils sont plus abstraits et puissants, mais ne répondent parfois pas à vos besoins spécifiés concernant certaines opérations liées à HTTP.
Et pour httplib
et httplib2
, je dirais qu'ils sont tous les deux HTTP client library
. Cependant, httplib2
est beaucoup plus puissant et comporte beaucoup plus de fonctionnalités que httplib
.
En ce qui concerne urllib
et urllib2
, citez de ce lien :
urllib et urllib2 sont deux modules Python qui effectuent des tâches liées aux demandes d’URL, mais offrent des fonctionnalités différentes. Les deux différences les plus importantes sont énumérées ci-dessous:
- urllib2 peut accepter un objet Request pour définir les en-têtes d'une requête d'URL, urllib n'accepte qu'une URL. Cela signifie que vous ne pouvez pas masquer votre chaîne d’agent d’utilisateur, etc.
- urllib fournit la méthode urlencode utilisée pour la génération de chaînes de requête GET. urllib2 ne dispose pas d'une telle fonction. C'est l'une des raisons pour lesquelles urllib est souvent utilisé avec urllib2.
Je recommanderais mon blog personnel Httplib Httplib2 Urllib Urllib2-quelle est la différence .
J'espère que ça aide:-)
urllib/urllib2 est construit sur httplib. Il offre plus de fonctionnalités que d'écrire directement dans httplib.
cependant, httplib vous donne un contrôle plus fin sur les connexions sous-jacentes.
Si vous utilisez uniquement http/https et avez besoin d'accéder à des éléments spécifiques à HTTP, utilisez httplib.
Dans tous les autres cas, utilisez urllib2.
Si vous avez besoin de choses de haut niveau comme la mise en cache, la persistance, la compression ou l’authentification, essayez httplib2
Pour les personnes déplaçant des éléments jusqu'à Py3 (et pour une raison quelconque, ne peut pas ou n'a pas refactorisé l'utilisation de awesome request module), il s'agit d'une bonne transition entre les versions:
try:
import http.client as httplib
except ImportError:
import httplib
Fonctionne dans les deux jeux de versions Python.