
Adélia Cruz
Neural Network Developer

Aunque reCAPTCHA protege eficazmente el contenido web, a veces puede obstaculizar actividades legítimas, como la investigación, el análisis de datos u otras tareas de automatización orientadas a la cumplimentación que implican interactuar con servicios web.
En este blog, te guiaremos a través de los pasos necesarios para resolver desafíos de reCAPTCHA utilizando JavaScript. Aprenderás a configurar tu entorno de desarrollo, a usar Puppeteer para interactuar con páginas web y a implementar soluciones para reCAPTCHA v2 y v3. Al finalizar este tutorial, tendrás una comprensión sólida de cómo resolver desafíos de reCAPTCHA de forma programática, lo que te permitirá integrar este conocimiento en tus propios proyectos.
reCAPTCHA es un tipo de CAPTCHA que ayuda a distinguir a los usuarios humanos de los bots presentando desafíos que son sencillos para los humanos pero difíciles para las máquinas. Con el tiempo, reCAPTCHA ha evolucionado desde texto distorsionado que los usuarios deben escribir, hasta rompecabezas basados en imágenes más complejos, y ahora a una versión casi invisible que funciona en segundo plano, evaluando a los usuarios según su comportamiento en el sitio.
Canjea tu código de bonificación de CapSolver
¡Aumenta tu presupuesto de automatización de inmediato!
Usa el código de bonificación CAPN al recargar tu cuenta de CapSolver para obtener un 5% adicional en cada recarga — sin límites.
Canjéalo ahora en tu Panel de control de CapSolver
.
reCAPTCHA v2: Esta versión es ampliamente reconocida por su casilla de verificación "No soy un robot" y desafíos basados en imágenes. Requiere que los usuarios hagan clic en imágenes o verifiquen ciertas acciones, lo que la hace efectiva para distinguir entre humanos y bots.

reCAPTCHA v3: A diferencia de la v2, reCAPTCHA v3 es invisible y funciona en segundo plano. Evalúa las interacciones de los usuarios en un sitio web y asigna una puntuación según la probabilidad de que el usuario sea un bot. Los sitios web pueden usar esta puntuación para decidir si permiten o bloquean al usuario.
reCAPTCHA Enterprise: Para empresas con necesidades de seguridad más elevadas, reCAPTCHA Enterprise está disponible. Esta versión ofrece protección avanzada contra amenazas sofisticadas, integrándose más profundamente con medidas de seguridad a nivel empresarial. Incluye un análisis de riesgo mejorado, puntuaciones personalizables y una mejor escalabilidad, lo que la hace adecuada para organizaciones que manejan datos sensibles o operaciones críticas.

Para los desarrolladores que trabajan en proyectos como el scraping web, pruebas automatizadas o automatización de formularios, encontrar reCAPTCHA puede ser un obstáculo significativo. Resolver manualmente reCAPTCHA cada vez no es viable en escenarios automatizados, lo que es donde entra en juego JavaScript. Al utilizar JavaScript, específicamente con la ayuda de herramientas como Puppeteer, los desarrolladores pueden interactuar y resolver desafíos de reCAPTCHA de forma programática.
Casos de uso comunes:
1. Scraping web: Extraer datos de sitios web a menudo implica interactuar con formularios o páginas protegidas por reCAPTCHA.
2. Pruebas automatizadas: Asegurar la estabilidad de las aplicaciones web puede requerir la presentación automatizada de formularios o interacciones con páginas protegidas por CAPTCHA.
3. Automatización de formularios: Automatizar tareas repetitivas, como completar y enviar formularios, a menudo requiere evitar CAPTCHA para completar el flujo de trabajo.
Antes de adentrarnos en el código, hay algunos requisitos previos que deberías tener a mano para seguir con éxito este tutorial:
Una vez que hayas cumplido estos requisitos previos, estarás listo para configurar tu entorno y comenzar a resolver desafíos de reCAPTCHA con JavaScript y CapSolver.
/recaptcha/api2/reload?k=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-, donde el valor después de k= es la clave del sitio que necesitamos. O puedes encontrar todos los parámetros para resolver recapctha a través de la extensión de CapSolverpip install requests
import requests
import time
from DrissionPage import ChromiumPage
# Crear una instancia de ChromiumPage
page = ChromiumPage()
# Acceder a la página de ejemplo que activa reCAPTCHA
page.get("https://www.google.com/recaptcha/api2/demo")
# TODO: Establece tu configuración
api_key = "tu clave de API de capsolver" # Tu clave de API de CapSolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # Clave del sitio de tu sitio objetivo
site_url = "https://www.google.com/recaptcha/api2/demo" # URL de la página de tu sitio objetivo
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
# Enviar una solicitud a CapSolver para crear una tarea
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("No se pudo crear la tarea:", res.text)
return
print(f"Obtenido taskId: {task_id} / Obteniendo resultado...")
while True:
time.sleep(3) # Retraso
payload = {"clientKey": api_key, "taskId": task_id}
# Consultar resultados de la tarea
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("¡Resolver falló! respuesta:", res.text)
return
def check():
# Obtener la solución de reCAPTCHA
token = capsolver()
# Establecer el valor de la respuesta de reCAPTCHA
page.run_js(f'document.getElementById("g-recaptcha-response").value="{token}"')
# Llamar a la función de devolución de llamada de éxito
page.run_js(f'onSuccess("{token}")')
# Enviar el formulario
page.ele('x://input[@id="recaptcha-demo-submit"]').click()
if __name__ == '__main__':
check()
Explicación:
k= en los registros de solicitudes del navegador y extrae el valor que sigue a k= como clave del sitio.api_key, site_key y site_url en el código con tus valores reales.check(), el código recuperará automáticamente la solución de reCAPTCHA y enviará el formulario.Asegúrate de cumplir con los términos de servicio y regulaciones legales de los sitios web con los que interactúas.
Resolver desafíos de reCAPTCHA de forma programática con JavaScript ofrece una solución poderosa para automatizar tareas que implican interactuar con servicios web protegidos por CAPTCHA. Al aprovechar herramientas como Puppeteer y CapSolver, puedes evitar eficazmente estos desafíos, optimizar tus flujos de trabajo y integrar soluciones automatizadas en tus proyectos.
A medida que reCAPTCHA continúa evolucionando, es crucial mantenerse informado sobre sus diferentes versiones y utilizar estrategias adecuadas. Ya sea que estés abordando scraping web, pruebas automatizadas o automatización de formularios, comprender cómo gestionar reCAPTCHA de manera eficiente puede mejorar significativamente tu productividad y precisión.
Recuerda que, aunque la automatización puede mejorar considerablemente la eficiencia, es esencial respetar los términos de servicio de los sitios web con los que interactúas y asegurar el cumplimiento de los estándares legales. Con las herramientas y conocimientos adecuados, puedes navegar por la complejidad de reCAPTCHA y enfocarte en lo que realmente importa en tus esfuerzos de desarrollo.
Importante: Al realizar scraping web, es crucial seguir las guías legales y éticas. Siempre asegúrate de tener permiso para escrapear el sitio web objetivo y respetar su archivo
robots.txty términos de servicio. CapSolver se opone firmemente al uso indebido de nuestros servicios para cualquier actividad no conforme. El uso de herramientas automatizadas para evitar CAPTCHAs sin autorización adecuada puede conllevar consecuencias legales. Asegúrate de que tus actividades de scraping sean conformes con todas las leyes y regulaciones aplicables para evitar problemas potenciales.
El uso de herramientas de automatización para resolver reCAPTCHA es legal solo cuando se realiza con autorización adecuada y en cumplimiento con los términos de servicio del sitio objetivo.
Actividades como la investigación, las pruebas de calidad o la automatización interna suelen ser aceptables.
Sin embargo, el uso de servicios de resolución de CAPTCHA para escrapear sin autorización, enviar spam o evadir controles de seguridad está estrictamente prohibido y puede conllevar consecuencias legales.
Siempre asegúrate de que tu automatización esté alineada con guías éticas y legales.
reCAPTCHA v2, v3 y Enterprise dependen de múltiples factores más allá de un token simple, incluyendo:
Una solicitud HTTP simple no puede simular este entorno.
Puppeteer (o herramientas similares de automatización de navegadores) crea un contexto de navegador real, lo que hace posible manejar con éxito y de forma confiable los desafíos de reCAPTCHA.
Varios factores pueden impedir que el bypass de reCAPTCHA funcione correctamente:
Causas comunes:
onSuccess() no se activa)Verificaciones recomendadas:
site_key y site_url coincidan con los valores reales de la página.g-recaptcha-response.ReCaptchaEnterpriseTaskProxyLess.¿Enfrentando errores como "reCAPTCHA Clave de sitio inválida" o "token de reCAPTCHA inválido"? Descubre las causas comunes, soluciones paso a paso y consejos de solución de problemas para resolver los errores de verificación de reCAPTCHA. Aprende cómo solucionar el error de verificación de reCAPTCHA, por favor intente de nuevo.

Aprende a resolver reCAPTCHA v2 usando Python y API. Este guía completa cubre métodos con y sin proxy con código listo para producción para automatización.
