Una biblioteca Java que ejecuta comandos curl sin modificar como llamadas a métodos Java normales, para que puedas pegar comandos de Postman o DevTools del navegador sin escribir código de cliente HTTP.
lexiforest/curl_cffi
Cliente HTTP para Python basado en curl que puede imitar las huellas TLS, JA3 y HTTP/2 de los navegadores para eludir bloqueos.
- Estrellas
- 6,769
- Forks
- 570
- Issues abiertos
- 46
- Último commit
- anteayer
¿Qué es?
curl_cffi es un binding de Python para una bifurcación de curl-impersonate, creado con cffi. Ofrece una API similar a la de requests para hacer solicitudes HTTP síncronas y asíncronas, pero, a diferencia de requests o httpx, puede establecer conexiones que parecen provenir de navegadores reales, imitando sus huellas TLS, JA3 y HTTP/2.
La biblioteca ofrece una interfaz de alto nivel al estilo de requests, con sesiones y cookies, además de una API de curl de bajo nivel. Puedes elegir un navegador objetivo con un parámetro como impersonate="chrome" o proporcionar cadenas ja3 y akamai personalizadas para objetivos que no sean navegadores. También admite HTTP/3, proxies SOCKS y HTTP, y conexiones WebSocket. Incluye además una CLI llamada curl-cffi, que puede obtener URL con suplantación de navegador.
Hay wheels precompilados para Linux, macOS y Windows, así que no hace falta compilar el código localmente. Los ajustes preestablecidos de huellas se pueden actualizar con el comando update sin actualizar el paquete.
Funciones clave
- 01Imita las huellas TLS/JA3 y HTTP/2 de los navegadores, incluidas las huellas personalizadas.
- 02Ofrece una API similar a la de requests con sesiones, además de clientes síncronos y de asyncio.
- 03Admite HTTP/2 y HTTP/3, con proxies HTTP y SOCKS.
- 04Incluye clientes WebSocket que imitan navegadores durante el handshake.
- 05Incluye una CLI llamada curl-cffi para obtener URL con suplantación de navegador.
Casos de uso
- Obtener páginas de sitios que bloquean solicitudes de requests o httpx según las huellas TLS.
- Crear scrapers web que necesitan concurrencia con asyncio y rotación de proxies.
- Probar cómo responde un servicio ante huellas específicas de navegadores.
- Usar Scrapy o código basado en requests con un comportamiento TLS similar al de un navegador.
Inicio rápido
- 1
Instala el paquete desde PyPI
pip install curl_cffi --upgrade - 2
Envía una solicitud que suplante a Chrome
python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"
Antes de usarlo
- Algunas funciones avanzadas, como las huellas de http/3, requieren una versión reciente.
- El soporte comercial y las huellas adicionales se ofrecen en un plan de pago.
Temas
Preguntas frecuentes
- ¿Qué es curl_cffi?
- Cliente HTTP para Python basado en curl que puede imitar las huellas TLS, JA3 y HTTP/2 de los navegadores para eludir bloqueos. curl_cffi es un binding de Python para una bifurcación de curl-impersonate, creado con cffi. Ofrece una API similar a la de requests para hacer solicitudes HTTP síncronas y asíncronas, pero, a diferencia de requests o httpx, puede establecer conexiones que parecen provenir de navegadores reales, imitando sus huellas TLS, JA3 y HTTP/2.
- ¿curl_cffi es gratuito? ¿Qué licencia tiene?
- curl_cffi es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿curl_cffi sigue mantenido?
- Mantenimiento activo. El último commit de curl_cffi fue el 23 oct 2026.
- ¿Para qué puedo usar curl_cffi?
- Obtener páginas de sitios que bloquean solicitudes de requests o httpx según las huellas TLS. Crear scrapers web que necesitan concurrencia con asyncio y rotación de proxies. Probar cómo responde un servicio ante huellas específicas de navegadores. Usar Scrapy o código basado en requests con un comportamiento TLS similar al de un navegador.
- ¿Cómo se instala curl_cffi?
- Instala el paquete desde PyPI: pip install curl_cffi --upgrade Envía una solicitud que suplante a Chrome: python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"
- ¿Dónde consigo curl_cffi?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lexiforest/curl_cffi
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Hurl es una herramienta de línea de comandos para ejecutar y probar solicitudes HTTP escritas en archivos de texto plano.
Un framework web minimalista y de alto rendimiento para Go, basado en el paquete estándar net/http.
Cliente y servidor WebSocket de línea de comandos, como netcat, curl y socat para conexiones ws:// y wss://.
Proxy HTTP interactivo con capacidad para interceptar TLS e interfaces de consola, línea de comandos y web para inspeccionar tráfico HTTP/1, HTTP/2 y WebSocket.
Ecosistema open source para el desarrollo de APIs que permite enviar solicitudes REST, GraphQL, WebSocket, SSE, Socket.IO y MQTT desde aplicaciones web, de escritorio y CLI.