CAPSOLVER
Blog
Resolver reCAPTCHA con JavaScript: Un Tutorial Completo

Resolver reCAPTCHA con JavaScript: Un tutorial completo

Logo of CapSolver

Adélia Cruz

Neural Network Developer

02-Dec-2025

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.

Lo que aprenderás

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.

¿Qué es reCAPTCHA?

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
.

Versiones de reCAPTCHA:

  • 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.

¿Por qué resolver reCAPTCHA con JavaScript?

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.

Requisitos previos

Antes de adentrarnos en el código, hay algunos requisitos previos que deberías tener a mano para seguir con éxito este tutorial:

  • Conocimiento básico de JavaScript: Este tutorial asume que tienes un conocimiento básico de JavaScript, incluyendo familiaridad con conceptos como variables, funciones y programación asíncrona.
  • Node.js y npm: Usaremos Node.js, un entorno de ejecución de JavaScript, junto con npm (Node Package Manager) para gestionar las dependencias de nuestro proyecto. Si no tienes Node.js instalado, puedes descargarlo desde el sitio oficial de Node.js.
  • Clave de API de CapSolver: Para resolver eficazmente desafíos de reCAPTCHA, necesitarás acceso a un servicio como CapSolver, que se especializa en resolver desafíos de CAPTCHA de forma programática. Asegúrate de registrarte y obtener una clave de API de CapSolver para integrarla en tu solución.

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.

Pasos para resolver reCAPTCHA con JavaScript

Obtención de la clave del sitio

Instalar la biblioteca requests

bash Copy
pip install requests

Código de ejemplo

python Copy
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:

  1. Obtención de la clave del sitio: Busca la solicitud que contiene el parámetro k= en los registros de solicitudes del navegador y extrae el valor que sigue a k= como clave del sitio.
  2. Establecer la configuración: Reemplaza api_key, site_key y site_url en el código con tus valores reales.
  3. Ejecutar el código: Al llamar a la función 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.

Conclusión

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.

Nota sobre el cumplimiento

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.txt y 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.

Preguntas frecuentes

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.


2. ¿Por qué necesito JavaScript o Puppeteer para resolver reCAPTCHA en lugar de solicitudes HTTP regulares?

reCAPTCHA v2, v3 y Enterprise dependen de múltiples factores más allá de un token simple, incluyendo:

  • Huella digital del navegador
  • Ejecución de JavaScript
  • Patrones de interacción del usuario
  • Cookies y comportamiento del DOM
  • Puntuación de riesgo (especialmente para v3 y Enterprise)

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.


3. Obtuve un token de CapSolver, pero el formulario no se envía. ¿Qué podría estar mal?

Varios factores pueden impedir que el bypass de reCAPTCHA funcione correctamente:

Causas comunes:

  • Clave del sitio incorrecta o obsoleta
  • URL del sitio web incorrecta pasada a CapSolver
  • Token insertado en el elemento DOM equivocado
  • Falta de ejecución del callback (por ejemplo, onSuccess() no se activa)
  • JavaScript en la página que espera acciones adicionales del usuario
  • El sitio utiliza reCAPTCHA Enterprise (requiere un tipo de tarea diferente)

Verificaciones recomendadas:

  1. Confirma que tu site_key y site_url coincidan con los valores reales de la página.
  2. Asegúrate de que el token se inserte correctamente en el campo g-recaptcha-response.
  3. Ejecuta manualmente el callback de éxito del sitio, si es necesario.
  4. Si el sitio utiliza reCAPTCHA Enterprise, cambia a ReCaptchaEnterpriseTaskProxyLess.
  5. Revisa los registros del navegador en busca de errores de JavaScript que puedan detener el envío del formulario.

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