example python http urllib httplib

example - urllib urlopen python 3



Python urllib vs httplib? (6)

¿Cuándo alguien usaría httplib y cuándo urllib?

¿Cuáles son las diferencias?

Creo que estoy listo urllib usa httplib, estoy planeando crear una aplicación que necesite hacer una solicitud http y hasta ahora solo he usado httplib.HTTPConnection en python para las solicitudes, y leyendo sobre urllib veo que puedo usar eso para solicitarlo también, Entonces, ¿cuál es el beneficio de uno u otro?


Me gustaría decir algo sobre urllib , urllib2 , httplib y httplib2 .

La principal diferencia entre urllib* y httplib* es que:

httplib y httplib2 manejan la solicitud y respuesta HTTP / HTTP directamente y le dan más espacio para hacer su propio trabajo.

urllib y urllib2 se basan en httplib, son más abstractos y potentes, pero a veces no cumplirán con su necesidad específica sobre algunas operaciones relacionadas con HTTP.

Y para httplib y httplib2 , diría que ambas son una HTTP client library . Sin embargo, httplib2 es mucho más potente y tiene muchas más funciones que httplib .

En cuanto a urllib y urllib2 , cita de este enlace :

urllib y urllib2 son ambos módulos de Python que hacen cosas relacionadas con las solicitudes de URL pero ofrecen diferentes funcionalidades. Sus dos diferencias más significativas se enumeran a continuación:

  • urllib2 puede aceptar un objeto Request para establecer los encabezados para una solicitud de URL, urllib solo acepta una URL. Eso significa que no puede enmascarar su cadena de agente de usuario, etc.
  • urllib proporciona el método urlencode que se utiliza para la generación de cadenas de consulta GET, urllib2 no tiene esa función. Esta es una de las razones por las que urllib se usa a menudo junto con urllib2.

Recomendaría mi blog personal Httplib Httplib2 Urllib Urllib2: ¿cuál es la diferencia ?

Espero eso ayude:-)


Para aquellos que están cambiando las cosas a Py3 (y por alguna razón no pueden o no han refactorizado para usar el impresionante módulo de requests ), esta es una buena transición entre las versiones:

try: import http.client as httplib except ImportError: import httplib

Funciona en ambos conjuntos de versiones de Python.


Si necesita material de alto nivel como Caching, Keep-Alive, Compression o Authentication, intente httplib2


Si se trata únicamente de http / https y necesita acceso a material específico de HTTP, use httplib.

Para todos los demás casos, use urllib2.


urllib (particularmente urllib2) maneja muchas cosas por defecto o tiene las librerías apropiadas para hacerlo. Por ejemplo, urllib2 seguirá redireccionamientos automáticamente y puede usar cookiejar para manejar scripts de inicio de sesión. Estas son todas las cosas que tendrías que codificar tú mismo si estuvieras usando httplib.


urllib / urllib2 está construido sobre httplib. Ofrece más funciones que escribir directamente en httplib.

sin embargo, httplib le brinda un control más preciso sobre las conexiones subyacentes.