
Adélia Cruz
Neural Network Developer

Cloudflare Turnstile es una alternativa inteligente a CAPTCHA diseñada para verificar usuarios legítimos sin desafíos intrusivos. Funciona ejecutando una serie de desafíos de JavaScript no interactivos en segundo plano, con el objetivo de distinguir visitantes humanos de bots de forma fluida. Aunque ofrece una mejor experiencia de usuario, su naturaleza invisible y proceso de verificación dinámica pueden representar obstáculos significativos para las herramientas de raspado web y extracción de datos.
Este artículo proporciona una guía detallada sobre cómo integrar Crawl4AI, un raspador web avanzado, con CapSolver, un servicio líder en soluciones de CAPTCHA y anti-bot, para evitar eficazmente las protecciones de Cloudflare Turnstile. Cubriremos tanto los métodos de integración basados en API como en extensiones de navegador, ofreciendo ejemplos de código prácticos y explicaciones para garantizar que sus tareas de automatización web puedan proseguir sin interrupciones.
Cloudflare Turnstile funciona evaluando el comportamiento del visitante y las características del navegador para emitir un token, que luego se envía al servidor para su verificación. Tiene como objetivo ser respetuoso con la privacidad y amigable con el usuario, pero para los raspadores web, esto significa:
cf-turnstile-response) antes de enviar el formulario o continuar con el siguiente paso.CapSolver ofrece una solución de alta precisión y respuesta rápida para Cloudflare Turnstile mediante algoritmos de inteligencia artificial avanzada. Al integrarse con Crawl4AI, transforma este mecanismo anti-bot sofisticado en un paso manejable, asegurando que sus tareas de automatización web permanezcan fluidas y productivas.
💡 Bonificación exclusiva para usuarios de integración con Crawl4AI:
Para celebrar esta integración, ofrecemos un código de bonificación exclusivo de 6% —CRAWL4para todos los usuarios de CapSolver que se registren a través de este tutorial.
Simplemente ingrese el código durante el recarga en Panel de control para recibir créditos adicionales de 6% de inmediato.
El método de integración de API proporciona un control preciso y suele preferirse por su flexibilidad. Involucra el uso de CapSolver para obtener el token de Turnstile y luego inyectar este token en el elemento de entrada adecuado en la página web objetivo utilizando la funcionalidad js_code de Crawl4AI.
AntiTurnstileTaskProxyLess junto con websiteURL y websiteKey. CapSolver devolverá el token necesario de Turnstile.js_code de Crawl4AI dentro de CrawlerRunConfig para inyectar el token obtenido en el elemento de entrada llamado cf-turnstile-response. Después de la inyección, simule un clic en el botón de envío o active la siguiente acción que dependa del token.El siguiente código de Python demuestra cómo integrar la API de CapSolver con Crawl4AI para resolver Cloudflare Turnstile. Este ejemplo apunta a la página de demostración de Cloudflare Turnstile.
import asyncio
import capsolver
from crawl4ai import *
# TODO: configure su configuración
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # su clave de API de CapSolver
site_key = "0x4AAAAAAAGlwMzq_9z6S9Mh" # clave del sitio de su sitio objetivo
site_url = "https://clifford.io/demo/cloudflare-turnstile" # URL de la página de su sitio objetivo
captcha_type = "AntiTurnstileTaskProxyLess" # tipo de CAPTCHA de su sitio objetivo
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# obtener token de Turnstile usando el SDK de capsolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["token"]
print("token de Turnstile:", token)
js_code = """
document.querySelector(\'input[name="cf-turnstile-response"]\').value = \'"""+token+"""\';
document.querySelector(\'button[type="submit"]\').click();
"""
wait_condition = """() => {
const items = document.querySelectorAll(\'h1\');
return items.length === 0;
}"""
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
wait_for=f"js:{wait_condition}"
)
result_next = await crawler.arun(
url=site_url,
config=run_config,
)
print(result_next.markdown)
if __name__ == "__main__":
asyncio.run(main())
Análisis del código:
capsolver.solve se invoca con el tipo AntiTurnstileTaskProxyLess, websiteURL y websiteKey para recuperar el token de Turnstile. Este token es la solución proporcionada por CapSolver.js_code): La cadena js_code contiene JavaScript que localiza el elemento de entrada con name="cf-turnstile-response" en la página y asigna el token obtenido a su propiedad value. Posteriormente, simula un clic en el botón de envío, asegurando que el formulario se envíe con el token de Turnstile válido.wait_for: Se define una wait_condition para garantizar que Crawl4AI espere un cambio específico en la página (por ejemplo, la desaparición de elementos h1, indicando un envío exitoso y navegación) antes de continuar.La extensión de navegador de CapSolver ofrece un enfoque simplificado para manejar Cloudflare Turnstile, especialmente cuando se aprovecha sus capacidades de resolución automática dentro de un contexto de navegador persistente gestionado por Crawl4AI.
user_data_dir y lanzar una instancia de navegador que conserve la extensión CapSolver instalada y sus configuraciones.cf-turnstile-response.Este ejemplo muestra cómo configurar Crawl4AI para usar un perfil de navegador con la extensión CapSolver para resolver automáticamente Cloudflare Turnstile.
import asyncio
import time
from crawl4ai import *
# TODO: configure su configuración
user_data_dir = "/browser-profile/Default1" # Asegúrese de que esta ruta esté correctamente configurada y contenga su extensión configurada
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Opcional: configure proxy si es necesario
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://clifford.io/demo/cloudflare-turnstile", # Use la URL de demostración de Cloudflare Turnstile
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# La extensión resolverá automáticamente el CAPTCHA al cargar la página.
# Es posible que necesite agregar una condición de espera o time.sleep para que el CAPTCHA se resuelva
# antes de continuar con otras acciones.
time.sleep(30) # Ejemplo de espera, ajuste según sea necesario para que la extensión funcione
# Continuar con otras operaciones de Crawl4AI después de resolver el CAPTCHA
# Por ejemplo, verificar elementos o contenido que aparezcan después de una verificación exitosa
# print(result_initial.markdown) # Puede inspeccionar el contenido de la página después de la espera
if __name__ == "__main__":
asyncio.run(main())
Análisis del código:
user_data_dir: Este parámetro es esencial para que Crawl4AI lance una instancia de navegador que conserve la extensión CapSolver instalada y sus configuraciones. Asegúrese de que la ruta apunte a un directorio válido de perfil de navegador donde se haya instalado la extensión.time.sleep como ejemplo general para permitir que la extensión complete sus operaciones en segundo plano. Para soluciones más robustas, considere usar la funcionalidad wait_for de Crawl4AI para verificar cambios específicos en la página que indiquen una resolución exitosa de Turnstile.La integración de Crawl4AI con CapSolver ofrece una solución sólida y eficiente para evitar Cloudflare Turnstile, mejorando significativamente la fiabilidad de las operaciones de raspado web. Ya sea que prefiera el control preciso de la integración de API o la automatización simplificada ofrecida por la extensión del navegador, ambos métodos garantizan que Cloudflare Turnstile ya no obstaculice sus objetivos de recolección de datos.
Al automatizar la resolución de Turnstile, los desarrolladores pueden enfocarse en extraer datos valiosos, seguros de que sus raspadores navegarán de forma fluida por sitios web protegidos. Esta sinergia entre las capacidades avanzadas de raspado de Crawl4AI y la tecnología anti-bot robusta de CapSolver marca un avance significativo en la extracción automatizada de datos web.
P1: ¿Qué es Cloudflare Turnstile y cómo se diferencia de los CAPTCHAs tradicionales?
R1: Cloudflare Turnstile es una alternativa a CAPTCHA que verifica usuarios legítimos sin desafíos intrusivos. A diferencia de los CAPTCHAs tradicionales que a menudo requieren que los usuarios resuelvan acertijos, Turnstile ejecuta desafíos de JavaScript no interactivos en segundo plano, buscando una experiencia de usuario fluida mientras distingue eficazmente a los humanos de los bots.
P2: ¿Por qué es difícil raspar sitios web protegidos por Cloudflare Turnstile?
R2: La naturaleza invisible de Turnstile, su dependencia de la ejecución dinámica de JavaScript y la necesidad de inyectar un token válido en un campo específico (cf-turnstile-response) dificultan el raspado web automatizado. Evalúa características del navegador y el comportamiento del usuario, bloqueando a menudo las solicitudes que no imitan la interacción humana real.
P3: ¿Cómo ayuda CapSolver a evitar Cloudflare Turnstile?
R3: CapSolver ofrece servicios especializados, como AntiTurnstileTaskProxyLess, para resolver desafíos de Cloudflare Turnstile. Obtiene el token necesario de Turnstile, que luego puede inyectar Crawl4AI en la página web objetivo para evitar la protección.
P4: ¿Cuáles son los dos principales métodos de integración de Cloudflare Turnstile con Crawl4AI y CapSolver?
R4: Los dos métodos principales son la integración de API, donde se llama a la API de CapSolver para obtener el token que luego se inyecta mediante js_code de Crawl4AI, y la integración de extensión de navegador, donde la extensión de CapSolver maneja automáticamente el desafío de Turnstile dentro de un contexto de navegador persistente.
P5: ¿Cuáles son los beneficios de integrar Crawl4AI y CapSolver para Cloudflare Turnstile?
R5: Esta integración permite el manejo automático de Turnstile, mejora la eficiencia del raspado, aumenta la robustez del raspador frente a mecanismos anti-bot y reduce los costos operativos minimizando la intervención manual, asegurando así una extracción de datos web sin interrupciones.
Aprende a solucionar el error de Cloudflare 1005 acceso denegado durante el scraping de web. Descubre soluciones como proxies residenciales, fingerprinting del navegador y CapSolver para CAPTCHA. Optimiza tu extracción de datos.

Descubre cómo manejar eficazmente Cloudflare Turnstile en flujos de trabajo de IA utilizando técnicas de stealth de Playwright y CapSolver para la resolución confiable de captchas. Aprende estrategias de integración prácticas y mejores prácticas para automatización ininterrumpida.
