2012-05-10 19 views
14

Quiero usar Python para capturar información de algunos sitios web. Quiero que el cliente HTTP para cumplir con estas condiciones:¿Puede recomendar alguna biblioteca de cliente http python?

  1. soporta https
  2. no va a usar demasiada memoria, no debe generar una gran cantidad de procesos o hilos.
  3. tiene una documentación clara y con el apoyo activo

Sé que requests, tornado, o la gevent -httpclient puede terminar mi tarea, pero no sé cuál es el mejor? o hay alguna otra opción?

o si hay algunas otras opciones escritas en C/c++.

Gracias!

Respuesta

22

Utilice requests. Tiene la misma API de las diversas bibliotecas.

+0

Leí la información sobre el tornado, alguien lo dijo eficiente, ¿qué tal la eficiencia sobre las solicitudes? – Djvu

+0

Tornado es eficiente si puede beneficiarse del procesamiento asíncrono, es decir, si necesita muchas conexiones en paralelo. Sin embargo, * requests * también admite solicitudes asíncronas: http://docs.python-requests.org/en/latest/user/advanced/#asynchronous-requests, y se ajusta mejor, ya que tornado es más un servidor web que un cliente http. biblioteca. – ThiefMaster

+0

Tenga en cuenta que 'requests' usa' urllib3', que repite automáticamente las solicitudes en ciertos casos. Puede ser crítico evitar repetir. – temoto

2

Otra opción es httplib2.

  • simples (y por lo tanto eficientes)
  • apoya todo lo que uno necesita y Python 3
  • no en Github
  • pocos meses pueden pasar antes de la próxima confirmación (en parte porque simplemente funciona)
+0

Yo uso httplib2 atm. Es compatible con py3, pero carece de soporte de proxy en py3. Es bueno y simplemente funciona, pero hay una serie de problemas en el rastreador oficial que están estancados durante años. – sshilovsky

Cuestiones relacionadas