CAPSOLVER
Blog
Cómo resolver reCaptcha v3 con Node.JS

Cómo resolver reCAPTCHA v3 con Node.JS

Logo of CapSolver

Adélia Cruz

Neural Network Developer

28-Nov-2025

Automatizar herramientas de SEO, raspado de Google Search, flujos de trabajo de bots o rastreadores sin navegador suele requerir interactuar con sitios web protegidos por reCAPTCHA v3. A diferencia de reCAPTCHA v2, la versión 3 no muestra desafíos de imágenes: asigna una puntuación de riesgo silenciosa de 0,0 a 1,0, y los bots suelen recibir puntuaciones inferiores a 0,3.
Para lograr un comportamiento similar al humano y obtener puntuaciones estables 0,7–0,9, tu script de automatización debe:

  • Enviar encabezados adecuados
  • Usar pageAction correcto
  • Generar un token real con un solucionador confiable

En esta guía, aprenderás a resolver reCAPTCHA v3 usando Node.js + CapSolver, con un script listo para ejecutar, consejos de configuración y mejores prácticas para maximizar la calidad de la puntuación.

⚙️ Requisitos previos

🤖 Paso 1: Instalar los paquetes necesarios

Ejecuta los siguientes comandos para instalar los paquetes requeridos:

JS Copy
npm install axios

👨‍💻 Paso 2: Código de Node.JS para resolver reCaptcha v3 y obtener una puntuación de 0,7-0,9

Aquí tienes un script de Node.JS de ejemplo para realizar la tarea:

js Copy
const PAGE_URL = "https://antcpt.com/score_detector";
const PAGE_KEY = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf";
const PAGE_ACTION = "homepage";
const CAPSOLVER_KEY = "TuClave"

async function createTask(url, key, pageAction) {
    try {
      // Define el punto de conexión de la API y el payload según la documentación del servicio.
      const apiUrl = "https://api.capsolver.com/createTask";
      const payload = {
        clientKey: CAPSOLVER_KEY,
        task: {
          type: "ReCaptchaV3TaskProxyLess",
          websiteURL: url,
          websiteKey: key,
          pageAction: pageAction
        }
      };
      const headers = {
        'Content-Type': 'application/json',
      };
      const response = await axios.post(apiUrl, payload, { headers });
      return response.data.taskId;
  
    } catch (error) {
      console.error("Error al crear la tarea de CAPTCHA: ", error);
      throw error;
    }
  }
  
  async function getTaskResult(taskId) {
    try {
      const apiUrl = "https://api.capsolver.com/getTaskResult";
      const payload = {
        clientKey: CAPSOLVER_KEY,
        taskId: taskId,
      };
      const headers = {
        'Content-Type': 'application/json',
      };
      let result;
      do {
        const response = await axios.post(apiUrl, payload, { headers });
        result = response.data;
        if (result.status === "ready") {
          return result.solution;
        }
        await new Promise(resolve => setTimeout(resolve, 5000)); // esperar 5 segundos antes de reintentar
      } while (true);
  
    } catch (error) {
      console.error("Error al obtener el resultado de CAPTCHA: ", error);
      throw error;
    }
  }
  

function setSessionHeaders() {
  return {
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="107", "Chromium";v="107"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': 'Windows',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip, deflate',
    'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,en-US;q=0.7',
  };
}

async function main() {
    
    const headers = setSessionHeaders();
    console.log("Creando tarea de CAPTCHA...");
    const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
    console.log(`ID de tarea: ${taskId}`);

    console.log("Recuperando resultado de CAPTCHA...");
    const solution = await getTaskResult(taskId);
    const token = solution.gRecaptchaResponse;
    console.log(`Solución del token ${token}`);


  const res = await axios.post("https://antcpt.com/score_detector/verify.php", { "g-recaptcha-response": token }, { headers });
  const response = res.data;
  console.log(`Puntuación: ${response.score}`);
}

main().catch(err => {
  console.error(err);
});

⚠️ Cambia estas variables

  • capsolver.api_key: Obtén tu clave de API desde el Panel de control de Capsolver.
  • PAGE_URL: Reemplázalo con la URL del sitio web para el cual deseas resolver el reCaptcha v3.
  • PAGE_KEY: Actualízalo con la clave específica del sitio con reCAPTCHA.
  • PAGE_ACTION: Reemplázalo con la pageAction de la página. Puedes leer esto blog

👀 Más información

Conclusión

Resolver Google reCAPTCHA v3 es esencial para tareas de automatización modernas como el monitoreo de SEO, el raspado de SERP, flujos de trabajo de cuentas y sistemas de verificación de backend. Usando Node.js + CapSolver, puedes generar de forma confiable tokens de reCAPTCHA con alta puntuación y evitar ser marcado como tráfico automatizado.

Al configurar correctamente el sitekey, pageAction, encabezados y seguir la estructura de tareas de CapSolver, tu pipeline de automatización se vuelve estable, escalable y resistente a la detección de reCAPTCHA.

❓ Preguntas frecuentes

1. ¿Qué es reCAPTCHA v3 y cómo se diferencia de v2?

reCAPTCHA v3 asigna una puntuación basada en el comportamiento (0,0–1,0) en lugar de mostrar desafíos de imágenes. Funciona en segundo plano y evalúa las interacciones del usuario para detectar bots.

2. ¿Cómo encuentro la clave de sitio de reCAPTCHA v3 en un sitio web?

Puedes localizar la clave de sitio en el HTML (atributo data-sitekey) o dentro del JavaScript que carga https://www.google.com/recaptcha/api.js.

3. ¿Qué significa pageAction en reCAPTCHA v3?

pageAction le dice a Google qué actividad está realizando el usuario, como iniciar sesión, buscar o enviar. Usar el valor incorrecto puede reducir drásticamente tu puntuación.

4. ¿Por qué mi puntuación de reCAPTCHA v3 sigue siendo baja después de resolverla?

Las razones comunes incluyen: pageAction incorrecto, IP de baja calidad, encabezados inválidos o coincidencia incorrecta de la clave de sitio. CapSolver proporciona modelos de puntuación optimizados que ayudan a obtener puntuaciones más altas.

5. ¿Puedo usar esta solución de Node.js con Puppeteer, Playwright o Selenium?

Sí. Después de obtener el token, puedes inyectarlo en la sesión de tu navegador o llamar directamente al endpoint de verificación.

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