ProductosIntegracionesRecursosDocumentaciónPrecios
Empezar ahora

© 2026 CapSolver. All rights reserved.

Contáctenos

Slack: lola@capsolver.com

Productos

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • Extensión de navegador
  • Más tipos de CAPTCHA

Integraciones

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • Socios
  • Ver todas las integraciones

Recursos

  • Programa de referidos
  • Documentación
  • Referencia de API
  • Blog
  • Preguntas frecuentes
  • Glosario
  • Estado

Legal

  • Términos de servicio
  • Política de privacidad
  • Política de reembolso
  • No vender mi información personal
Blog/All/Cómo resolver el fingerprinting TLS/JA3 en el scraping web con curl_cffi
Aug28, 2024

Cómo resolver el fingerprinting TLS/JA3 en el scraping web con curl_cffi

Adélia Cruz

Adélia Cruz

Neural Network Developer

¿Tienes problemas con las medidas anti-bot al raspar sitios web? curl_cffi, una biblioteca avanzada de Python que envuelve la herramienta cURL, puede ayudarte a evitar estos obstáculos de manera efectiva. Al imitar el comportamiento del navegador y aprovechar las características de cURL, curl_cffi mejora la capacidad de tu raspador para evitar la detección y funcionar de forma fluida. En esta guía, exploraremos cómo funciona curl_cffi, cómo usarlo para diversas tareas y abordaremos sus limitaciones. También discutiremos soluciones potenciales para superar estas limitaciones.

¿Qué es curl_cffi?

curl_cffi es una biblioteca de Python diseñada para solicitudes de red, similar a bibliotecas como requests y httpx. Sin embargo, a diferencia de estas bibliotecas, curl_cffi puede simular huellas dactilares TLS/JA3 y HTTP/2 de navegadores. curl-impersonate es una herramienta de línea de comandos que puede simular cuatro navegadores principales y realizar intercambios TLS y HTTP como un navegador real. curl_cffi encapsula curl-impersonate en una biblioteca de Python utilizando cffi.

¿Tienes problemas con el fracaso repetido al intentar resolver completamente el irritante CAPTCHA?

Descubre la resolución automática de CAPTCHA sin problemas con la tecnología de desbloqueo web automatizada por inteligencia artificial de CapSolver!

Recibe tu Código de bonificación para soluciones de CAPTCHA de primera categoría; CapSolver: WEBS. Después de redimirlo, obtendrás un bono adicional del 5% tras cada recarga, ilimitado

¿Qué es el Fingerprinting TLS/JA3?

Hoy en día, la mayoría de los sitios web utilizan HTTPS. Para establecer una conexión HTTPS, ocurre un intercambio TLS entre el servidor y el cliente, intercambiando información como las versiones TLS compatibles y los algoritmos de cifrado. Los clientes tienen características diferentes y estos detalles suelen ser estables, permitiendo a los servidores identificar si las solicitudes provienen de navegadores de usuarios típicos o de scripts automatizados. JA3 es un algoritmo común utilizado para generar huellas dactilares TLS. Funciona concatenando estas características y calculando un hash MD5.

Uso de curl_cffi

El uso de curl_cffi es bastante similar a requests. Así es como puedes usar requests para obtener la huella dactilar JA3:

python Copy
import requests

url = "https://tls.browserleaks.com/json"
r = requests.get(url)
print(r.json())

Podrías obtener resultados como estos:

json Copy
{
    "user_agent": "python-requests/2.32.3",
    "ja3_hash": "8d9f7747675e24454cd9b7ed35c58707",
    "ja3_text": "771,4866-4867-4865-49196-49200-49195-49199-52393-52392-159-158-52394-49327-49325-49326-49324-49188-49192-49187-49191-49162-49172-49161-49171-49315-49311-49314-49310-107-103-57-51-157-156-49313-49309-49312-49308-61-60-53-47-255,0-11-10-16-22-23-49-13-43-45-51-21,29-23-30-25-24,0-1-2",
    "ja3n_hash": "a790a1e311289ac1543f411f6ffceddf",
    "ja3n_text": "771,4866-4867-4865-49196-49200-49195-49199-52393-52392-159-158-52394-49327-49325-49326-49324-49188-49192-49187-49191-49162-49172-49161-49171-49315-49311-49314-49310-107-103-57-51-157-156-49313-49309-49312-49308-61-60-53-47-255,0-10-11-13-16-21-22-23-43-45-49-51,29-23-30-25-24,0-1-2",
    "akamai_hash": "",
    "akamai_text": ""
}

Si haces solicitudes repetidas, notarás que tu hash JA3 permanece igual. Sin embargo, a partir de la versión Chrome 110, el orden de las extensiones ClientHello de TLS se randomiza, lo que hace más fácil que los desarrolladores de sitios web bloqueen bibliotecas como requests basándose en las huellas dactilares JA3. Si tus solicitudes muestran siempre la misma huella dactilar JA3, podrían identificarse como provenientes de un solo usuario, aumentando la probabilidad de ser marcadas como bots.

Así es como puedes usar curl_cffi para simular una huella dactilar JA3 real:

python Copy
from curl_cffi import requests

url = "https://tls.browserleaks.com/json"
r = requests.get(url, impersonate="chrome124")
print(r.json())

El parámetro impersonate permite especificar el navegador y la versión que deseas simular. Los navegadores compatibles incluyen Chrome, Chrome Android, Edge y Safari, con versiones actualizadas continuamente. Para más información detallada, consulta el repositorio de GitHub de curl_cffi. Con curl_cffi, la huella dactilar JA3 coincidirá con la de un navegador real, y a partir de Chrome 110, la huella dactilar JA3 cambiará con cada solicitud:

json Copy
{
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "ja3_hash": "c97c8dac4ca1de968fe230de54f3e0f3",
    "ja3_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,16-10-27-18-5-51-23-17513-45-35-43-13-65281-0-11-65037,25497-29-23-24,0",
    "ja3n_hash": "4c9ce26028c11d7544da00d3f7e4f45c",
    "ja3n_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-5-10-11-13-16-18-23-27-35-43-45-51-17513-65037-65281,25497-29-23-24,0",
    "akamai_hash": "52d84b11737d980aef856699f885ca86",
    "akamai_text": "1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p"
}

Superando las limitaciones de curl_cffi

Aunque curl_cffi puede simular huellas dactilares JA3 reales y posiblemente evitar desafíos de bots y bloqueos, a veces puede no ser suficiente. Muchos sitios implementan mecanismos avanzados de protección contra bots. Estos sistemas utilizan imágenes complejas y desafíos de JavaScript difíciles de leer para diferenciar entre humanos y bots. A veces, incluso con una huella dactilar JA3 real y aleatorizada, es imposible evitar estos desafíos.

Si te encuentras con desafíos CAPTCHA, sin importar la biblioteca de solicitudes que uses, pueden ser inevitables. Sin embargo, no es necesario preocuparse. CapSolver proporciona una solución para estos problemas. CapSolver utiliza tecnología de desbloqueo web automatizada basada en inteligencia artificial para resolver diversos desafíos de bots en segundos. Ya sea con imágenes o problemas complejos, CapSolver los maneja de manera eficiente. Si la solución falla, no incurrirás en ningún costo.

CapSolver también ofrece una extensión de navegador que resuelve automáticamente los CAPTCHA durante el raspado de datos con Selenium. Además, existe una solución de API para resolver CAPTCHA y obtener tokens en marcos como Scrapy. Todo se puede lograr en unos pocos segundos. Para más detalles, consulta la documentación de CapSolver.

Conclusión

Al integrar curl_cffi en tu configuración de raspado web, puedes imitar efectivamente el comportamiento de un navegador real para superar los desafíos de fingerprinting TLS/JA3. Aunque curl_cffi ofrece herramientas robustas para manejar estos desafíos, los sistemas avanzados de CAPTCHA y detección de bots aún representan obstáculos significativos. CapSolver ofrece una solución complementaria para abordar estos desafíos CAPTCHA de forma fluida, asegurando que tus actividades de raspado funcionen sin problemas.

Para más información y recursos, visita el sitio web de CapSolver y explora el repositorio de GitHub de curl_cffi.

Ver más

May 07, 2026

Mejores frameworks de agentes de IA para automatización web y resolución de CAPTCHA

Compara los mejores marcos de agentes de IA para automatización web, resolución de CAPTCHA, cumplimiento y flujos de trabajo de agentes listos para producción en 2026.

Aloísio Vítor
Aloísio Vítor
May 07, 2026

Mejores bibliotecas de scraping web en Java para una extracción de datos confiable

Compara las mejores bibliotecas de scraping web en Java, incluyendo jsoup, Selenium, Playwright para Java, HtmlUnit, Apache Nutch y opciones de API.

Aloísio Vítor
Aloísio Vítor

Contenido

May 06, 2026

Cómo resolver CAPTCHA en automatización de navegadores con Hermes Agent y CapSolver

Aprende a resolver CAPTCHA en flujos de trabajo de automatización de navegadores de IA usando Hermes Agent y CapSolver. Este tutorial explica cómo integrar CapSolver para manejar automáticamente reCAPTCHA, hCaptcha y otros sistemas modernos de CAPTCHA en entornos de navegación automatizados sin escribir código complejo.

Aloísio Vítor
Aloísio Vítor
May 06, 2026

Cómo resolver el desafío de AWS WAF sin un navegador: Una guía técnica

Aprende a resolver desafíos de AWS WAF y CAPTCHAs sin navegador. Utiliza la API de CapSolver para generar tokens y evadir códigos de estado 405.

Aloísio Vítor
Aloísio Vítor