Desarrollada por daijro, hrequests (human requests) está diseñada para ser un reemplazo simple pero configurable de la librería requests de Python. Ofrece una gran cantidad de nuevas características mientras mantiene la facilidad de uso.
Para el scraping en producción, combina técnicas TLS con elusión de anti-bots: comienza con ¿Qué es el fingerprinting TLS?.
Características clave:
- Transición sin problemas: Cambia fácilmente entre solicitudes HTTP y navegación sin cabeza.
- Alto rendimiento: Utiliza gevent para la concurrencia sin necesidad de monkey-patching.
- Análisis avanzado: Incluye un analizador HTML rápido e integrado.
- Renderizado de JavaScript: Soporta completamente el renderizado de JS, crucial para el web scraping moderno.
- Soporte para HTTP/2: Se mantiene actualizado con los últimos protocolos web.
- Huellas TLS de navegador: Imitan el tráfico real del navegador para mejorar el sigilo.
- Manejo eficiente de JSON: Hasta 10 veces más rápido en la serialización de JSON en comparación con la librería estándar.
- Navegación con navegador: Automatización simplificada del navegador, con simulaciones de interacción humana.
Se puede instalar fácilmente mediante pip: pip install -U hrequests[all] y python -m playwright install firefox chromium.
Uso y documentación
La documentación completa disponible en Gitbook detalla todo, desde solicitudes GET simples hasta tareas complejas de automatización de navegadores. El módulo soporta métodos HTTP estándar como GET, POST, PUT, DELETE, HEAD, OPTIONS y PATCH, con respuestas muy similares a las de la librería original requests.
Solicitudes concurrentes y perezosas
hrequests introduce conceptos como solicitudes nohup para operaciones en segundo plano y concurrencia basada en arrays para manejar múltiples solicitudes simultáneamente.
Análisis HTML y automatización de navegadores
Aprovechando PyQuery para un análisis HTML eficiente, hrequests permite un análisis detallado e interacción con el contenido web. La automatización del navegador soporta tanto navegadores sin cabeza como gráficos, con extensiones para Chrome y Firefox.
Manejo de excepciones
La librería ofrece métodos robustos para manejar excepciones y tiempos de espera, asegurando una ejecución confiable del script.
Comunidad y contribuciones
Mantenida por la comunidad de Python, hrequests es un testimonio del desarrollo colaborativo. Las contribuciones y comentarios son siempre bienvenidos, fomentando la mejora continua.
Licencias y soporte
Licenciada bajo la Licencia de Software Apache (Apache-2.0), hrequests garantiza compatibilidad con una amplia gama de proyectos. Se soportan versiones de Python desde la 3.7 hasta la 3.11.
En conclusión, hrequests es una herramienta poderosa para desarrolladores de Python, que ofrece características mejoradas y capacidades para solicitudes web y scraping. Su diseño fácil de usar, junto con funcionalidades avanzadas, lo convierte en una excelente opción tanto para principiantes como para profesionales experimentados en el desarrollo web con Python.