C¨®mo resolver Captcha en Crawl4AI con CapSolver integraci¨®n

Ad¨¦lia Cruz
Neural Network Developer
26-Sep-2025

1. Introducci¨®n
La automatizaci¨®n web y la extracci¨®n de datos son vitales para muchas aplicaciones, pero los CAPTCHA a menudo interrumpen estos procesos, causando retrasos y fallos.
Para abordar esto, Crawl4AI y CapSolver han colaborado. Crawl4AI ofrece una raspado avanzado y adaptable de p¨¢ginas web y control de navegador, mientras que CapSolver proporciona una resoluci¨®n de CAPTCHA altamente precisa y r¨¢pida. Esta colaboraci¨®n permite a los desarrolladores lograr una automatizaci¨®n web y recolecci¨®n de datos sin interrupciones.
1.1. Objetivos de la integraci¨®n
Los objetivos principales de la integraci¨®n de Crawl4AI y CapSolver son:
- Combinar las capacidades eficientes de raspado de Crawl4AI con las capacidades de resoluci¨®n de CAPTCHA de CapSolver: A trav¨¦s de una integraci¨®n profunda, Crawl4AI puede llamar de forma fluida a los servicios de CapSolver cuando se encuentra con CAPTCHA, logrando as¨ª un bypass automatizado.
- Lograr una extracci¨®n de datos web automatizada y sin obst¨¢culos: Eliminar los obst¨¢culos causados por los CAPTCHA, garantizando la continuidad y completitud de las tareas de extracci¨®n de datos, reduciendo significativamente la intervenci¨®n manual.
- Mejorar la estabilidad y tasa de ¨¦xito del raspador: Proporcionar soluciones estables y confiables ante mecanismos anti-bot complejos, mejorando as¨ª significativamente la tasa de ¨¦xito y la eficiencia de la extracci¨®n de datos.
2. Visi¨®n general de Crawl4AI
Crawl4AI es una herramienta de raspado web y extracci¨®n de datos de c¨®digo abierto y amigable con LLM, dise?ada para satisfacer las necesidades de las aplicaciones de inteligencia artificial modernas. Puede transformar contenido de p¨¢ginas web complejas en formato Markdown estructurado y limpio, simplificando enormemente el procesamiento y an¨¢lisis posterior de los datos.
2.1. Caracter¨ªsticas principales
- Amigable con LLM: Crawl4AI puede generar contenido de Markdown de alta calidad y soportar extracci¨®n estructurada, convirti¨¦ndolo en una elecci¨®n ideal para construir RAG (Generaci¨®n Aumentada por Recuperaci¨®n), agentes de inteligencia artificial y pipelines de datos. Autom¨¢ticamente filtra el ruido, manteniendo solo la informaci¨®n valiosa para los LLM.
- Control avanzado de navegador: Ofrece capacidades poderosas de control de navegador headless, soportando gesti¨®n de sesiones e integraci¨®n de proxies. Esto significa que Crawl4AI puede simular el comportamiento de un usuario real, evitando eficazmente la detecci¨®n de bots y manejando contenido cargado din¨¢micamente.
- Alta rendimiento y raspado adaptativo: Crawl4AI utiliza algoritmos de raspado adaptativo inteligente que pueden determinar de forma inteligente cu¨¢ndo detener el raspado bas¨¢ndose en la relevancia del contenido, evitando el raspado ciego de grandes cantidades de p¨¢ginas irrelevantes, mejorando as¨ª la eficiencia y reduciendo costos. Su velocidad y eficiencia son destacadas al manejar sitios web de gran escala.
- Modo de invisibilidad: Efectivamente evita la detecci¨®n de bots imitando el comportamiento de un usuario real.
- Raspado consciente de identidad: Puede guardar y reutilizar cookies y localStorage, soportando el raspado de sitios web despu¨¦s de iniciar sesi¨®n, asegurando que el raspador sea reconocido como un usuario leg¨ªtimo.
2.2. Casos de uso
Crawl4AI es adecuado para grandes tareas de extracci¨®n de datos como investigaci¨®n de mercado, agregaci¨®n de noticias o recolecci¨®n de productos en comercio electr¨®nico. Maneja sitios web din¨¢micos y con mucho JavaScript y sirve como fuente de datos confiable para agentes de inteligencia artificial y pipelines automatizados de datos.
Crawl4AI imagina un futuro donde los datos digitales se conviertan en un activo de capital verdadero. Su whitepaper describe una econom¨ªa de datos compartida, empoderando a individuos y empresas para estructurar, valorar y, opcionalmente, monetizar sus datos aut¨¦nticos, aline¨¢ndose estrechamente con la misi¨®n de CapSolver de liberar el valor de los datos generados por humanos mediante resoluci¨®n de CAPTCHA fluida y acceso automatizado a datos.
3. Visi¨®n general de CapSolver
CapSolver es un servicio l¨ªder de resoluci¨®n de CAPTCHA automatizado que utiliza tecnolog¨ªa de IA avanzada para proporcionar soluciones r¨¢pidas y precisas para diversos desaf¨ªos de CAPTCHA complejos. Tiene como objetivo ayudar a desarrolladores y empresas a superar las barreras de CAPTCHA y garantizar la operaci¨®n fluida de procesos automatizados.
- Soporta m¨²ltiples tipos de CAPTCHA: CapSolver puede resolver tipos de CAPTCHA principales del mercado, incluyendo, entre otros, reCAPTCHA v2/v3, Cloudflare Turnstile, ImageToText (OCR), AWS WAF, etc. Su amplia compatibilidad lo convierte en una soluci¨®n universal de CAPTCHA.
- Alta tasa de reconocimiento y respuesta r¨¢pida: Utilizando algoritmos de IA poderosos y recursos de c¨®mputo a gran escala, CapSolver logra una precisi¨®n extremadamente alta en la resoluci¨®n de CAPTCHA y devuelve soluciones en milisegundos, minimizando los retrasos en el raspado.
- F¨¢cil integraci¨®n de API: CapSolver proporciona interfaces de API claras y concisas y documentaci¨®n detallada de SDK, lo que hace que sea f¨¢cil para desarrolladores integrar r¨¢pidamente sus servicios en marcos de raspador existentes y herramientas de automatizaci¨®n, ya sea en Python, Node.js u otros entornos de lenguaje.
4. Resolver desaf¨ªos de CAPTCHA con Crawl4AI y CapSolver
4.1. Problemas
Antes de integrar CapSolver, incluso con sus capacidades de raspado poderosas, Crawl4AI a menudo enfrentaba los siguientes problemas al encontrarse con CAPTCHA:
- Interrupci¨®n del proceso de adquisici¨®n de datos: Una vez que el raspador activa un CAPTCHA, toda la tarea de extracci¨®n de datos se bloquea, requiriendo intervenci¨®n manual para resolverlo, afectando severamente la eficiencia de la automatizaci¨®n.
- Disminuida estabilidad: La aparici¨®n de CAPTCHA conduce a tareas de raspado inestables, tasas de ¨¦xito fluctuantes y dificultad para garantizar un flujo continuo de datos.
- Aumento de costos de desarrollo: Los desarrolladores deben invertir tiempo adicional y esfuerzo para encontrar, probar y mantener diversas soluciones para evitar CAPTCHA, o resolver manualmente CAPTCHA, aumentando as¨ª los costos de desarrollo y operaci¨®n.
- Compromiso de la puntualidad de los datos: Los retrasos causados por CAPTCHA pueden hacer que los datos pierdan su puntualidad, afectando decisiones basadas en datos en tiempo real.
4.2. Soluci¨®n: C¨®mo resolver con la integraci¨®n de Crawl4AI y CapSolver
La integraci¨®n de Crawl4AI y CapSolver proporciona una soluci¨®n elegante y poderosa que resuelve completamente los problemas anteriores. La idea general es: cuando Crawl4AI detecta un CAPTCHA durante el proceso de raspado, activa autom¨¢ticamente el servicio de CapSolver para reconocimiento y resoluci¨®n, e inyecta de forma fluida la soluci¨®n en el proceso de raspado, logrando as¨ª un bypass automatizado de CAPTCHA.
Valor de la integraci¨®n:
- Manejo automatizado de CAPTCHA: Los desarrolladores pueden llamar directamente a la API de CapSolver dentro de Crawl4AI, eliminando la necesidad de intervenci¨®n manual y logrando el reconocimiento y resoluci¨®n automatizados de CAPTCHA.
- Mejora de la eficiencia de raspado: Al evitar autom¨¢ticamente CAPTCHA, las interrupciones de raspado se reducen significativamente, acelerando el proceso de adquisici¨®n de datos.
- Mejora de la robustez del raspador: Frente a mecanismos anti-bot diversos, la soluci¨®n integrada ofrece mayor adaptabilidad y estabilidad, asegurando que el raspador opere eficientemente en diversos entornos complejos.
- Reducci¨®n de costos operativos: Reduce la necesidad de intervenci¨®n manual, optimiza la asignaci¨®n de recursos y disminuye los costos operativos a largo plazo de la extracci¨®n de datos
La integraci¨®n de Crawl4AI y CapSolver principalmente implica dos m¨¦todos: integraci¨®n de API e integraci¨®n de extensi¨®n de navegador. Se recomienda la integraci¨®n de API por ser m¨¢s flexible y precisa, evitando posibles problemas con el momento de inyecci¨®n y la precisi¨®n que podr¨ªan surgir con extensiones de navegador en p¨¢ginas complejas.
5. C¨®mo integrar usando la API de CapSolver
La integraci¨®n de API requiere combinar la funcionalidad js_code
de Crawl4AI. Los pasos b¨¢sicos son los siguientes:
- Navegar a la p¨¢gina que contiene el CAPTCHA: Crawl4AI accede normalmente a la p¨¢gina web objetivo.
- Obtener token usando el SDK de CapSolver: En el c¨®digo Python de Crawl4AI, llame a la API de CapSolver usando el SDK de CapSolver, enviando par¨¢metros relacionados con el CAPTCHA (por ejemplo,
siteKey
,websiteURL
) al servicio de CapSolver para obtener la soluci¨®n del CAPTCHA (normalmente un token). - Inyectar token usando
CrawlerRunConfig
de Crawl4AI: Use el par¨¢metrojs_code
del m¨¦todoCrawlerRunConfig
para inyectar el token devuelto por CapSolver en el elemento correspondiente de la p¨¢gina objetivo. Por ejemplo, para reCAPTCHA v2, el token normalmente necesita inyectarse en el elementog-recaptcha-response
. - Continuar otras operaciones de Crawl4AI: Despu¨¦s de una inyecci¨®n exitosa del token, Crawl4AI puede continuar realizando acciones posteriores como clics y env¨ªos de formularios, con el CAPTCHA superado con ¨¦xito.
5.1. Resolviendo reCAPTCHA v2
reCAPTCHA v2 es un CAPTCHA de casilla de verificaci¨®n "I'm not a robot" com¨²n. Para resolverlo, obtenga el token gRecaptchaResponse
mediante CapSolver e ingr¨¦selo en la p¨¢gina. Si no est¨¢ seguro de c¨®mo configurar los par¨¢metros, consulte el blog tutorial para detectar autom¨¢ticamente el CAPTCHA y extraer la configuraci¨®n.

An¨¢lisis del c¨®digo de ejemplo:
El c¨®digo proporcionado por el usuario demuestra c¨®mo usar el m¨¦todo capsolver.solve
para obtener el token de reCAPTCHA v2 y asignarlo al ¨¢rea de texto g-recaptcha-response
mediante js_code
, luego simular el clic en el bot¨®n de env¨ªo. Este m¨¦todo asegura que el token de CAPTCHA se lleve correctamente al enviar el formulario.
python
import asyncio
import capsolver
from crawl4ai import *
# TODO: configure su configuraci¨®n
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # su clave de API de capsolver
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9" # clave del sitio de su sitio objetivo
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php" # URL de la p¨¢gina de su sitio objetivo
captcha_type = "ReCaptchaV2TaskProxyLess" # tipo de su CAPTCHA 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 recaptcha usando el sdk de capsolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["gRecaptchaResponse"]
print("token de recaptcha:", token)
js_code = """
const textarea = document.getElementById(\'g-recaptcha-response\');
if (textarea) {
textarea.value = \"""" + token + """\";
document.querySelector(\'button.form-field[type="submit"]\').click();
}
"""
wait_condition = """() => {
const items = document.querySelectorAll(\'h2\');
return items.length > 1;
}"""
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())
Si un token v2 es inv¨¢lido, obtenga la configuraci¨®n JSON mediante la extensi¨®n y env¨ªela a nuestro soporte para mejorar la puntuaci¨®n del token: Resolver reCAPTCHA v2, v2 invisible, v3, v3 Enterprise ¡Ý0.9 puntuaci¨®n.
5.2. Resolviendo reCAPTCHA v3
reCAPTCHA v3 es un CAPTCHA invisible que normalmente funciona en segundo plano y devuelve una puntuaci¨®n. Antes de resolver reCAPTCHA v3, lea la documentaci¨®n de reCAPTCHA v3 de CapSolver para comprender los par¨¢metros requeridos y c¨®mo obtenerlos. Usaremos el demo de reCAPTCHA v3 como ejemplo.

-
A diferencia de v2, reCAPTCHA v3 es invisible, por lo que la inyecci¨®n del token puede ser complicada. Inyectar el token demasiado pronto puede ser sobrescrito por el token original, e inyectar demasiado tarde puede pasar por alto el paso de verificaci¨®n. En este sitio de demostraci¨®n, visitar la p¨¢gina activa autom¨¢ticamente la generaci¨®n y verificaci¨®n del token.
-
Al observar la p¨¢gina, vemos que resolver reCAPTCHA activa una solicitud fetch para verificar el token. La soluci¨®n es obtener el token de CapSolver con anticipaci¨®n y interceptar la solicitud fetch para reemplazar el token original en el momento adecuado.
An¨¢lisis del c¨®digo de ejemplo:
El c¨®digo intercepta el m¨¦todo window.fetch
, y cuando se env¨ªa una solicitud a /recaptcha-v3-verify.php
, reemplaza el token original con el token obtenido con anticipaci¨®n de CapSolver. Esta t¨¦cnica avanzada de interceptaci¨®n asegura que incluso los CAPTCHA v3 generados din¨¢micamente, que son dif¨ªciles de manipular directamente, puedan ser evitados de forma efectiva.
python
import asyncio
import capsolver
from crawl4ai import *
# TODO: configure su configuraci¨®n
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # su clave de API de capsolver
site_key = "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9" # clave del sitio de su sitio objetivo
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php" # URL de la p¨¢gina de su sitio objetivo
page_action = "examples/v3scores" # acci¨®n de p¨¢gina de su sitio objetivo
captcha_type = "ReCaptchaV3TaskProxyLess" # tipo de su CAPTCHA objetivo
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
# obtener token de recaptcha usando el sdk de capsolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
"pageAction": page_action,
})
token = solution["gRecaptchaResponse"]
print("token de recaptcha:", token)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
js_code = """
const originalFetch = window.fetch;
window.fetch = function(...args) {
if (typeof args[0] === \'string\' && args[0].includes(\'/recaptcha-v3-verify.php\')) {
const url = new URL(args[0], window.location.origin);
url.searchParams.set('action', '""" + token + """');
args[0] = url.toString();
document.querySelector('.token').innerHTML = "fetch('/recaptcha-v3-verify.php?action=examples/v3scores&token="+token+"\')";
console.log('Fetch URL hooked:', args[0]);
}
return originalFetch.apply(this, args);
};
"""
wait_condition = "() => {
return document.querySelector('.step3:not(.hidden)');
}"
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())
Si un token v3 es inv¨¢lido, obtenga la configuraci¨®n JSON a trav¨¦s de la extensi¨®n y env¨ªela a nuestro soporte para mejorar la puntuaci¨®n del token: Resolver reCAPTCHA v2, v2 invisible, v3, v3 Enterprise ¡Ý0.9 score.
5.3. Resolver Cloudflare Turnstile
Antes de comenzar a resolver Cloudflare Turnstile, lea cuidadosamente la documentaci¨®n de Cloudflare Turnstile de CapSolver para asegurarse de entender qu¨¦ par¨¢metros deben pasarse al crear una tarea y c¨®mo obtener sus valores. A continuaci¨®n, usaremos el demo de Turnstile como ejemplo para mostrar c¨®mo resolver Cloudflare Turnstile.
Despu¨¦s de resolver Turnstile, el token se inyectar¨¢ en un elemento de entrada llamado cf-turnstile-response
. Por lo tanto, nuestro js_code tambi¨¦n debe simular esta operaci¨®n. Al continuar con el siguiente paso, como hacer clic en iniciar sesi¨®n, este token se llevar¨¢ autom¨¢ticamente para la verificaci¨®n.
python
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 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 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())
5.4. Resolver desaf¨ªos de Cloudflare
Los desaf¨ªos de Cloudflare suelen requerir un manejo m¨¢s complejo, incluyendo la coincidencia de huellas dactilares del navegador y el User-Agent. CapSolver proporciona el tipo AntiCloudflareTask
para resolver estos desaf¨ªos. Antes de resolver un desaf¨ªo de Cloudflare, revise la documentaci¨®n de desaf¨ªos de Cloudflare de CapSolver para entender los par¨¢metros necesarios y c¨®mo obtenerlos al crear una tarea.
Notas:
- La versi¨®n del navegador, la plataforma y el userAgent deben coincidir con la versi¨®n utilizada por CapSolver.
- El userAgent debe ser coherente con la versi¨®n y la plataforma.
python
import asyncio
import time
import capsolver
from crawl4ai import *
# TODO: configure su configuraci¨®n
api_key = "CAP-XXX" # su clave de API de capsolver
site_url = "https://www.tempo.co/hukum/polisi-diduga-salah-tangkap-pelajar-di-magelang-yang-dituduh-perusuh-demo-2070572" # URL de la p¨¢gina de su sitio objetivo
captcha_type = "AntiCloudflareTask" # tipo de captcha objetivo
api_proxy = "http://127.0.0.1:13120"
capsolver.api_key = api_key
user_data_dir = "./crawl4ai_/browser-profile/Default1493"
# o
cdp_url = "ws://localhost:xxxx"
async def main():
print("inicio de resoluci¨®n de token")
start_time = time.time()
# obtener token de cloudflare usando sdk de capsolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"proxy": api_proxy,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
})
token_time = time.time()
print(f"resoluci¨®n de token: {token_time - start_time:.2f} s")
# establecer cookies
cookies = solution.get("cookies", [])
if isinstance(cookies, dict):
cookies_array = []
for name, value in cookies.items():
cookies_array.append({
"name": name,
"value": value,
"url": site_url,
})
cookies = cookies_array
elif not isinstance(cookies, list):
cookies = []
token = solution["token"]
print("token de desaf¨ªo:", token)
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
user_data_dir=user_data_dir,
# cdp_url=cdp_url,
user_agent=solution["userAgent"],
cookies=cookies,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
result = await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
print(result.markdown[:500])
if __name__ == "__main__":
asyncio.run(main())
5.5. Resolver AWS WAF
AWS WAF es un Firewall de Aplicaciones Web que normalmente verifica las solicitudes estableciendo cookies espec¨ªficas. Para m¨¢s informaci¨®n sobre c¨®mo lidiar con AWS WAF, consulte nuestra gu¨ªa en la documentaci¨®n de AWS WAF para asegurarse de que conozca qu¨¦ tipos de par¨¢metros deben enviarse al crear una tarea y c¨®mo obtener sus valores. La clave para resolver AWS WAF es obtener la cookie aws-waf-token
devuelta por CapSolver.
An¨¢lisis del c¨®digo de ejemplo:
El c¨®digo obtiene la cookie aws-waf-token
mediante CapSolver, luego usa js_code
para establecerla como cookie de la p¨¢gina y recarga la p¨¢gina. Despu¨¦s de recargarla, Crawl4AI acceder¨¢ a la p¨¢gina con la cookie correcta, evitando as¨ª la detecci¨®n de AWS WAF.
python
import asyncio
import capsolver
from crawl4ai import *
# TODO: configure su configuraci¨®n
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # su clave de API de capsolver
site_url = "https://nft.porsche.com/onboarding@6" # URL de la p¨¢gina de su sitio objetivo
cookie_domain = ".nft.porsche.com" # el nombre de dominio al que desea aplicar la cookie
captcha_type = "AntiAwsWafTaskProxyLess" # tipo de captcha 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 cookie de AWS WAF usando sdk de capsolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
})
cookie = solution["cookie"]
print("cookie de AWS WAF:", cookie)
js_code = """
document.cookie = 'aws-waf-token=""" + cookie + """;domain=""" + cookie_domain + """;path=/';
location.reload();
"""
wait_condition = """() => {
return document.title === 'Unirse al viaje de Porsche en Web3';
}"""
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())
6. C¨®mo integrar usando la extensi¨®n de CapSolver
Integrar una extensi¨®n de navegador con crawl4ai requiere especificar el directorio de inicio del navegador, luego instalar la extensi¨®n para resolver captchas. Puede elegir que la extensi¨®n los resuelva autom¨¢ticamente o use js_code
para resolverlos activamente. Los pasos generales son los siguientes:
- Inicie el navegador especificando
user_data_dir
. - Instale la extensi¨®n: visite
chrome://extensions
, haga clic en "modo de desarrollador" en la esquina superior derecha, luego seleccione "Cargar extensi¨®n no empaquetada" y elija el directorio del proyecto de la extensi¨®n local. - Visite la p¨¢gina de la extensi¨®n de CapSolver y configure la clave de API; alternativamente, configure
apiKey
directamente en/CapSolver/assets/config.js
dentro del proyecto de la extensi¨®n.
Descripci¨®n de par¨¢metros deconfig.js
:
useCapsolver
: Si se debe usar autom¨¢ticamente CapSolver para detectar y resolver captchas.manualSolving
: Si se debe iniciar manualmente la resoluci¨®n de captchas.useProxy
: Si se debe configurar un proxy.enabledForBlacklistControl
: Si se debe habilitar el control de lista negra.- ...
- Visite una p¨¢gina que contenga un captcha.
- Espere a que la extensi¨®n lo procese autom¨¢ticamente / use
js_code
para elegir cu¨¢ndo resolver el captcha. - Contin¨²e con otras operaciones usando crawl4ai.
Los siguientes ejemplos mostrar¨¢n c¨®mo resolver reCAPTCHA v2/v3, Cloudflare Turnstile, AWS WAF a trav¨¦s de la integraci¨®n con la extensi¨®n del navegador.
6.1. Resolver reCAPTCHA v2
Antes de resolver reCAPTCHA v2, aseg¨²rese de que haya configurado correctamente la extensi¨®n. A continuaci¨®n, usaremos la API de demostraci¨®n como ejemplo para mostrar c¨®mo resolver reCAPTCHA v2.
Despu¨¦s de resolver reCAPTCHA, al continuar con el siguiente paso, como hacer clic en iniciar sesi¨®n, la verificaci¨®n ocurrir¨¢ autom¨¢ticamente.
python
import asyncio
import time
from crawl4ai import *
# TODO: configure su configuraci¨®n
user_data_dir = "/browser-profile/Default1"
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120",
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# haga algo m¨¢s tarde
time.sleep(300)
if __name__ == "__main__":
asyncio.run(main())
Si necesita elegir activamente cu¨¢ndo resolver el captcha, use el siguiente c¨®digo:
- Nota: Haga clic en "Resolver manualmente" en la p¨¢gina de la extensi¨®n.

Debe configurar el par¨¢metro manualSolving
de la extensi¨®n en true
. De lo contrario, la extensi¨®n activar¨¢ autom¨¢ticamente la resoluci¨®n de captchas.
python
import asyncio
import time
from crawl4ai import *
# TODO: configure su configuraci¨®n
user_data_dir = "/browser-profile/Default1"
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120",
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# haga algo m¨¢s tarde
time.sleep(6)
js_code = """
let solverButton = document.querySelector('#capsolver-solver-tip-button');
if (solverButton) {
// evento de clic
const clickEvent = new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
});
solverButton.dispatchEvent(clickEvent);
}
"""
print(js_code)
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
)
result_next = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
config=run_config
)
print("Resultados de ejecuci¨®n de JS:", result_next.js_execution_result)
time.sleep(300)
if __name__ == "__main__":
asyncio.run(main())
6.2. Resolver reCAPTCHA v3
Antes de resolver reCAPTCHA v3, aseg¨²rese de que haya configurado correctamente la extensi¨®n. A continuaci¨®n, usaremos la API de demostraci¨®n como ejemplo para mostrar c¨®mo resolver reCAPTCHA v3.
Despu¨¦s de resolver reCAPTCHA, al continuar con el siguiente paso, como hacer clic en iniciar sesi¨®n, la verificaci¨®n ocurrir¨¢ autom¨¢ticamente.
- Se recomienda resolver reCAPTCHA v3 autom¨¢ticamente mediante la extensi¨®n, generalmente activado al visitar el sitio web.
session_id="session_captcha_test"
)
# hacer algo m¨¢s tarde
time.sleep(300)
if name == "main":
asyncio.run(main())
### 6.3. Resolver Cloudflare Turnstile
Antes de resolver Cloudflare Turnstile, aseg¨²rese de que haya configurado correctamente la extensi¨®n. A continuaci¨®n, usaremos <a href="https://clifford.io/demo/cloudflare-turnstile" rel="nofollow">Turnstile Demo</a> como ejemplo para demostrar c¨®mo resolver Cloudflare Turnstile.
Una vez que se resuelva Turnstile, se inyectar¨¢ un token en un elemento de entrada llamado `cf-turnstile-response`. Al continuar con el siguiente paso, como hacer clic en iniciar sesi¨®n, este token se llevar¨¢ autom¨¢ticamente para la verificaci¨®n.
```python
import asyncio
import time
from crawl4ai import *
# TODO: configure su configuraci¨®n
user_data_dir = "/browser-profile/Default1"
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120",
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# hacer algo m¨¢s tarde
time.sleep(300)
if __name__ == "__main__":
asyncio.run(main())
6.4. Resolver AWS WAF
Antes de resolver AWS WAF, aseg¨²rese de que la extensi¨®n CapSolver est¨¦ correctamente configurada. En este ejemplo, usaremos demo de AWS WAF para demostrar el proceso.
Una vez que se resuelva AWS WAF, se obtendr¨¢ una cookie llamada aws-waf-token
. Esta cookie se lleva autom¨¢ticamente para la verificaci¨®n en operaciones posteriores.
python
import asyncio
import time
from crawl4ai import *
# TODO: configure su configuraci¨®n
user_data_dir = "/browser-profile/Default1"
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120",
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://nft.porsche.com/onboarding@6",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# hacer algo m¨¢s tarde
time.sleep(300)
if __name__ == "__main__":
asyncio.run(main())
Si necesita elegir activamente cu¨¢ndo resolver el captcha, utilice el siguiente c¨®digo:
- Nota: Haga clic en "Resolver manualmente" en la p¨¢gina de la extensi¨®n.

Debe configurar el par¨¢metro manualSolving
de la extensi¨®n en true
. De lo contrario, la extensi¨®n activar¨¢ autom¨¢ticamente la resoluci¨®n del captcha.
python
import asyncio
import time
from crawl4ai import *
# TODO: configure su configuraci¨®n
user_data_dir = "/browser-profile/Default1"
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120",
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://nft.porsche.com/onboarding@6",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# hacer algo m¨¢s tarde
time.sleep(6)
js_code = """
let solverButton = document.querySelector(\'#capsolver-solver-tip-button\');
if (solverButton) {
// evento de clic
const clickEvent = new MouseEvent(\'click\', {
bubbles: true,
cancelable: true,
view: window
});
solverButton.dispatchEvent(clickEvent);
}
"""
print(js_code)
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
)
result_next = await crawler.arun(
url="https://nft.porsche.com/onboarding@6",
config=run_config
)
print("Resultados de la ejecuci¨®n de JS:", result_next.js_execution_result)
time.sleep(300)
if __name__ == "__main__":
asyncio.run(main())
7. Conclusi¨®n
La alianza oficial entre Crawl4AI y CapSolver marca un hito significativo en el campo de la extracci¨®n de datos de web. Al combinar las capacidades avanzadas de rastreo de Crawl4AI con los servicios poderosos de resoluci¨®n de CAPTCHA de CapSolver, los desarrolladores ahora pueden construir sistemas de rastreador automatizados m¨¢s estables, eficientes y robustos.
Ya sea que se trate de contenido din¨¢mico complejo o de diversos mecanismos anti-bot, esta soluci¨®n integrada ofrece un excelente rendimiento y flexibilidad. La integraci¨®n de API proporciona control granular y mayor precisi¨®n, mientras que la integraci¨®n de extensi¨®n de navegador simplifica el proceso de configuraci¨®n, adapt¨¢ndose a las necesidades de diferentes escenarios.
7.1. Preguntas frecuentes
P1: ?Qu¨¦ es la integraci¨®n de Crawl4AI y CapSolver, y c¨®mo resuelve CAPTCHAs?
R1: La integraci¨®n combina el avanzado rastreo web de Crawl4AI con la resoluci¨®n autom¨¢tica de CAPTCHA de CapSolver. Bypassea CAPTCHAs como reCAPTCHA v2/v3, Cloudflare Turnstile y AWS WAF, permitiendo la extracci¨®n de datos de web sin interrupciones y de manera eficiente sin intervenci¨®n manual.
P2: ?Cu¨¢les son los principales beneficios para la extracci¨®n de datos?
R2: Los beneficios clave incluyen el manejo autom¨¢tico de CAPTCHA, rastreo m¨¢s r¨¢pido y confiable, mayor robustez contra mecanismos anti-bot y menores costos operativos al reducir la resoluci¨®n manual de CAPTCHA.
P3: ?C¨®mo maneja diferentes tipos de CAPTCHA?
R3: Utilizando m¨¦todos de API y extensi¨®n de navegador, resuelve:
- reCAPTCHA v2: token inyectado en la p¨¢gina
- reCAPTCHA v3: el hook de fetch reemplaza tokens din¨¢micamente
- Cloudflare Turnstile: token inyectado en campo de entrada
- AWS WAF: cookie v¨¢lida obtenida
Esto asegura un bypass integral para diversos desaf¨ªos.
P4: ?Cu¨¢les son las funciones principales de Crawl4AI para IA y extracci¨®n de datos?
R4: Crawl4AI proporciona contenido estructurado en Markdown para agentes de IA, control avanzado del navegador con gesti¨®n de proxy y sesi¨®n, rastreo de alto rendimiento adaptativo, modo stealth para evitar la detecci¨®n de bots y rastreo consciente de identidad para sesiones iniciadas.
7.2. Documentaciones
- Documentaci¨®n oficial de CapSolver
- Documentaci¨®n oficial de Crawl4AI
Aviso de Cumplimiento: La informaci¨®n proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas est¨¢ estrictamente prohibido y ser¨¢ investigado. Nuestras soluciones para la resoluci¨®n de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos p¨²blicos. Fomentamos el uso responsable de nuestros servicios. Para obtener m¨¢s informaci¨®n, visite nuestros T¨¦rminos de Servicio y Pol¨ªtica de Privacidad.
M¨¢se

C¨®mo resolver cualquier versi¨®n de reCAPTCHA Enterprise v2, v2 invisible, v3, v3 Enterprise puntuaci¨®n 0.9
Domina la resoluci¨®n de cualquier versi¨®n de reCaptcha con CapSolver: Este gu¨ªa proporciona un tutorial paso a paso para resolver reCaptcha de manera efectiva, garantizando resultados precisos cada vez.

Alo¨ªsio V¨ªtor
11-Oct-2025

C¨®mo resolver captchas de imagen
Esta entrada de blog proporciona una gu¨ªa completa sobre c¨®mo resolver captchas de imagen utilizando CapSolver, una herramienta dise?ada para automatizar el proceso. Comienza explicando qu¨¦ es un captcha de imagen, seguido de una gu¨ªa paso a paso detallada sobre c¨®mo usar la API de CapSolver para resolver estos captchas. La gu¨ªa incluye ejemplos de las solicitudes y respuestas involucradas en el proceso. La entrada concluye con una nota sobre la eficiencia y la conveniencia de usar CapSolver para resolver captchas de imagen, convirti¨¦ndola en una fuente invaluable para quienes buscan automatizar tareas que involucran la resoluci¨®n de captchas.

Emma Foster
11-Oct-2025

C¨®mo resolver reCaptcha versi¨®n 2 Invisible
Este blog sirve como una gu¨ªa completa sobre c¨®mo resolver reCaptcha v2 invisible utilizando Capsolver. Proporciona una gu¨ªa paso a paso, desde enviar la informaci¨®n necesaria a Capsolver hasta verificar los resultados. El blog est¨¢ dise?ado para ser f¨¢cil de entender y seguir, haciendo que el proceso de implementar y resolver reCaptcha v2 invisible en tu sitio web sea r¨¢pido y eficiente. Es una gu¨ªa ¨²nica y extensa, asegurando que los lectores adquieran una comprensi¨®n completa del proceso sin ning¨²n plagio.

Ad¨¦lia Cruz
11-Oct-2025

Resolver reCaptcha v2 Enterprise
En el mundo digital, la seguridad y la comodidad del usuario a menudo se encuentran en extremos opuestos del espectro. Los CAPTCHAs, espec¨ªficamente reCaptcha, han sido fundamentales para equilibrar los dos aspectos. Sin embargo, ?qu¨¦ pasa si necesitas resolver las pruebas de reCaptcha a menudo complejas y que consumen mucho tiempo, especialmente la versi¨®n Enterprise de reCaptcha V2, para un prop¨®sito leg¨ªtimo como pruebas automatizadas? En este blog, te guiaremos a trav¨¦s del proceso de resolver reCaptcha V2 Enterprise utilizando la API de CapSolver.

Ad¨¦lia Cruz
11-Oct-2025

Resolver reCaptcha v3
Aprende a resolver reCaptcha V3 usando CapSolver: diversos tipos de tareas, integraci¨®n de API simple y soluciones efectivas para automatizaci¨®n y pruebas

Alo¨ªsio V¨ªtor
10-Oct-2025

C¨®mo resolver Captcha en Crawl4AI con CapSolver integraci¨®n
Extracci¨®n de datos web fluida con Crawl4AI & CapSolver: soluci¨®n autom¨¢tica de CAPTCHA, mayor eficiencia y extracci¨®n de datos robusta para la IA.

Ad¨¦lia Cruz
26-Sep-2025