CAPSOLVER
Blog
Cómo resolver CAPTCHA en BrowserCloud con la API de CapSolver

Cómo resolver CAPTCHA en BrowserCloud con la API de CapSolver

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

11-Sep-2025

BrowserCloud es una plataforma de automatización de navegadores basada en la nube y de alto rendimiento, diseñada para la automatización web escalable y distribuida. Permite a los desarrolladores ejecutar cientos de navegadores Chrome sin cabeza en paralelo para casos de uso como raspado web, pruebas automatizadas, monitoreo de SEO, extracción de datos y generación de contenido. Con soporte integrado para Puppeteer, Selenium y Playwright, BrowserCloud simplifica los flujos de trabajo de automatización complejos al ofrecer rotación de proxies, administración de sesiones y monitoreo en tiempo real.

Sin embargo, los CAPTCHA, los sistemas de detección de bots y las medidas avanzadas contra la automatización a menudo interrumpen estas tareas de automatización del navegador al exigir interacciones similares a las humanas para verificar la autenticidad. Tales barreras pueden bloquear los scripts de raspado, ralentizar las canalizaciones de prueba e interrumpir los envíos de formularios automatizados, lo que resulta en pérdida de tiempo y reducción de la eficiencia.

CapSolver, un servicio de derivación de CAPTCHA y detección de bots con tecnología de IA, proporciona una solución confiable. Detecta y resuelve programáticamente una amplia gama de tipos de CAPTCHA, incluidos reCAPTCHA v2/v3, Cloudflare Turnstile y rompecabezas basados en imágenes, lo que garantiza flujos de trabajo de automatización del navegador ininterrumpidos.

En este artículo, proporcionaremos una guía de integración paso a paso para conectar CapSolver con BrowserCloud usando Puppeteer, junto con un ejemplo de código completamente funcional. Al seguir esta guía, podrá omitir sin problemas los desafíos de CAPTCHA, derrotar las medidas anti-bot y maximizar la eficiencia de sus scripts de automatización.

Descripción general y casos de uso de BrowserCloud

BrowserCloud es una plataforma versátil que gestiona una cuadrícula de navegadores Chrome con todas las funciones en una infraestructura de alto rendimiento, eliminando la necesidad de manejar dependencias de navegadores locales, fugas de memoria o mantenimiento de la infraestructura. Sus características clave incluyen:

  • Escalabilidad: Ejecute hasta 100 navegadores sin cabeza simultáneamente para el procesamiento paralelo.
  • Soporte de framework: Compatible con Puppeteer, Selenium y Playwright para una automatización flexible.
  • Administración de proxies: Ofrece rotación inteligente de proxies y proxies premium para evitar la detección y las prohibiciones de IP.
  • Generación de contenido: Genere archivos PDF, capturas de pantalla e imágenes desde páginas web o HTML personalizado a través de la API.
  • Monitoreo en tiempo real: Proporciona herramientas para la administración de sesiones y la depuración.

Casos de uso

BrowserCloud admite una gama de tareas de automatización, que incluyen:

  • Raspado web: Extraiga datos de sitios web para investigación de mercado, monitoreo de precios o agregación de contenido, aprovechando el soporte de proxy para evitar bloqueos.
  • Pruebas automatizadas: Realice pruebas de extremo a extremo en múltiples navegadores y configuraciones para garantizar la confiabilidad de la aplicación.
  • Renderizado de contenido: Cree miles de informes PDF, facturas o capturas de pantalla automatizadas desde URL para fines de informes o marketing.
  • Automatización de tareas: Automatice tareas repetitivas como envíos de formularios, inicios de sesión de cuentas o validación de enlaces.

Estos casos de uso a menudo encuentran CAPTCHA, lo que hace que la integración de CapSolver sea esencial para una automatización ininterrumpida.

Por qué se necesita la resolución de CAPTCHA

Los sitios web implementan CAPTCHA y defensas anti-bot para protegerse contra el acceso automatizado, el correo no deseado y las actividades maliciosas, lo que representa un desafío significativo para las tareas de automatización como el raspado web. Los CAPTCHA requieren interacciones como marcar casillas de verificación o resolver rompecabezas de imágenes, lo que puede detener los scripts de BrowserCloud si no se abordan. Los tipos de CAPTCHA comunes incluyen:

Tipo de CAPTCHA Descripción
reCAPTCHA v2 Requiere que los usuarios marquen una casilla o seleccionen imágenes según un mensaje.
reCAPTCHA v3 Utiliza un sistema de puntuación para evaluar el comportamiento del usuario, a menudo invisible para los usuarios.
Cloudflare Turnstile Una alternativa de CAPTCHA centrada en la privacidad que minimiza la interacción del usuario.

Para el raspado web y otras tareas de automatización, los CAPTCHA pueden impedir el acceso a datos críticos, lo que requiere una intervención manual que anula el propósito de la automatización. Si bien la rotación de proxy de BrowserCloud ayuda a reducir los activadores de CAPTCHA, es posible que no los elimine por completo. La API de CapSolver proporciona una solución confiable al resolver CAPTCHA programáticamente, permitiendo que los scripts de BrowserCloud omitan estas barreras y continúen extrayendo datos o realizando tareas sin problemas.

Cómo usar CapSolver para manejar CAPTCHA

La API de CapSolver se puede integrar con BrowserCloud dentro de un script Puppeteer/Playwright/Selenium para manejar CAPTCHA de manera efectiva. El proceso implica:

  1. Detectar el CAPTCHA: Identifique la presencia de un CAPTCHA en la página, como un elemento reCAPTCHA.
  2. Extraer información: Recupere los detalles necesarios, como la clave del sitio y la URL de la página, necesarios para resolver el CAPTCHA.
  3. Llamar a la API de CapSolver: Envíe una solicitud a CapSolver para crear una tarea y obtener un token de solución.
  4. Inyectar la solución: Inserte el token en la página para omitir el CAPTCHA.
  5. Continuar la automatización: Continúe con tareas como el envío de formularios o la extracción de datos.

Esta integración aprovecha la infraestructura de navegador escalable de BrowserCloud y las capacidades de resolución de CAPTCHA impulsadas por IA de CapSolver para garantizar flujos de trabajo de automatización robustos.

Ejemplo de código completo + Explicación paso a paso

A continuación, se muestra un ejemplo de código completo que demuestra cómo integrar CapSolver con BrowserCloud para resolver un reCAPTCHA v2 en una página de demostración. El código se basa en el script proporcionado, con mejoras menores para mayor claridad y confiabilidad.

Requisitos previos

Instale las dependencias necesarias:

bash Copy
npm install puppeteer node-fetch@2 dotenv

Cree un archivo .env con sus claves de API:

env Copy
BROWSER_CLOUD_TOKEN=su_token_de_browsercloud
CAPSOLVER_API_KEY=su_clave_de_api_de_capsolver

Ejemplo de código

javascript Copy
import puppeteer from 'puppeteer';
import fetch from 'node-fetch';
import dotenv from 'dotenv';
dotenv.config();

const BROWSER_CLOUD_TOKEN = process.env.BROWSER_CLOUD_TOKEN;
const CAPSOLVER_API_KEY = process.env.CAPSOLVER_API_KEY;

async function solveCaptcha(sitekey, pageUrl) {
    const createTaskRes = await fetch('https://api.capsolver.com/createTask', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
            clientKey: CAPSOLVER_API_KEY,
            task: {
                type: 'ReCaptchaV2TaskProxyless',
                websiteURL: pageUrl,
                websiteKey: sitekey
            }
        })
    });
    const createTask = await createTaskRes.json();
    if (!createTask.taskId) throw new Error(`CapSolver: Error al crear la tarea: ${JSON.stringify(createTask)}`);

    let solution = null;
    while (true) {
        await new Promise(resolve => setTimeout(resolve, 2000));
        const resultRes = await fetch('https://api.capsolver.com/getTaskResult', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
                clientKey: CAPSOLVER_API_KEY,
                taskId: createTask.taskId
            })
        });
        const result = await resultRes.json();
        if (result.status === 'ready') {
            solution = result.solution.gRecaptchaResponse;
            break;
        }
        if (result.status === 'failed') throw new Error(`CapSolver: Error al resolver: ${JSON.stringify(result)}`);
    }
    if (!solution) throw new Error('CapSolver: Tiempo de espera agotado esperando la solución');
    return solution;
}

(async () => {
    try {
        const browser = await puppeteer.connect({
            browserWSEndpoint: `wss://chrome-v2.browsercloud.io?token=${BROWSER_CLOUD_TOKEN}`
        });

        const page = await browser.newPage();
        await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php', { waitUntil: 'networkidle2' });

        const sitekey = await page.$eval('.g-recaptcha', el => el.getAttribute('data-sitekey'));
        console.log('Sitekey:', sitekey);

        const solution = await solveCaptcha(sitekey, page.url());
        console.log('Solución CAPTCHA:', solution);

        await page.evaluate(token => {
            const textarea = document.getElementById('g-recaptcha-response');
            if (textarea) {
                textarea.value = token;
                textarea.innerHTML = token;
                textarea.style.display = '';
                textarea.dispatchEvent(new Event('input', { bubbles: true }));
            }
        }, solution);

        const submitBtn = await page.$('body > main > form > fieldset > button');
        if (submitBtn) {
            await Promise.all([
                page.waitForNavigation({ waitUntil: 'networkidle2' }),
                submitBtn.click()
            ]);
            console.log('¡Botón de enviar pulsado!');
        } else {
            console.log('¡Botón de enviar no encontrado!');
        }

        console.log('Contenido de la página después del envío:', await page.content());

        await browser.close();
    } catch (error) {
        console.error('Error:', error);
    }
})();

Explicación paso a paso

Paso Descripción
1. Configurar el entorno Instale puppeteer, node-fetch@2 y dotenv usando npm. Cree un archivo .env con sus claves de API de BrowserCloud y CapSolver.
2. Definir la función solveCaptcha La función toma la clave del sitio y la URL de la página, crea una tarea CapSolver para reCAPTCHA v2, sondea la solución (hasta 30 intentos con intervalos de 2 segundos) y devuelve el token de solución.
3. Conectarse a BrowserCloud Use puppeteer.connect con el punto final de WebSocket de BrowserCloud, incluyendo su token de API. Tenga en cuenta que createIncognitoBrowserContext no es compatible con el modo remoto de BrowserCloud, así que use browser.newPage() directamente.
4. Navegar a la página de destino Abra una nueva página y navegue a la página de demostración con reCAPTCHA v2, esperando a que la red esté inactiva.
5. Extraer la clave del sitio Use page.$eval para recuperar el atributo data-sitekey del elemento .g-recaptcha.
6. Resolver CAPTCHA Llame a solveCaptcha con la clave del sitio y la URL de la página para obtener el token de solución de CapSolver.
7. Inyectar la solución Inyecte el token de solución en el área de texto g-recaptcha-response y envíe un evento de entrada para simular la interacción del usuario.
8. Enviar formulario Localice el botón de enviar, haga clic en él y espere a la navegación para asegurarse de que se procese el envío del formulario.
9. Verificar el resultado Imprima el contenido de la página para confirmar el envío exitoso.
10. Cerrar el navegador Cierre la conexión del navegador para liberar recursos.

Nota: El código original usaba page.waitForTimeout(3000) después de hacer clic en el botón de enviar, lo que puede no esperar de manera confiable la navegación. Este ejemplo lo mejora utilizando page.waitForNavigation() para asegurar que la página se haya cargado completamente después del envío.

Recorrido de la demostración

Esta sección describe la ejecución del script en una página de demostración con una casilla de verificación reCAPTCHA v2:

  1. Conexión a BrowserCloud: El script establece una conexión a una instancia de navegador BrowserCloud usando Puppeteer.
  2. Navegación a la página de demostración: Carga la página de demostración reCAPTCHA v2 (https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php).
  3. Detección y extracción de la clave del sitio: El script identifica el elemento reCAPTCHA y extrae su clave del sitio.
  4. Resolver CAPTCHA: Envía la clave del sitio y la URL de la página a CapSolver, recibiendo un token de solución después de sondear.
  5. Inyectar token: El token se inyecta en el área de texto g-recaptcha-response, simulando una verificación exitosa de CAPTCHA.
  6. Enviar formulario: El script hace clic en el botón de enviar, lo que desencadena el envío del formulario.
  7. Verificar el éxito: Después de la navegación, se registra el contenido de la página, mostrando un envío exitoso (por ejemplo, un mensaje de confirmación).

En la práctica, observaría que el navegador navega a la página de demostración, la casilla de verificación reCAPTCHA se marca automáticamente y el formulario se envía correctamente, todo sin intervención manual.

Sección de preguntas frecuentes

Pregunta Respuesta
¿Qué tipos de CAPTCHA admite CapSolver? CapSolver admite reCAPTCHA v2/v3, Cloudflare Turnstile y más. Consulte la documentación de CapSolver para obtener más detalles.
¿Cómo obtengo claves de API para BrowserCloud y CapSolver? Regístrese en BrowserCloud y CapSolver para obtener sus claves de API después del registro.
¿Puedo usar esta integración con Selenium o Playwright? Sí, puede adaptar la integración para Selenium o Playwright modificando la lógica de control del navegador y manipulación de páginas para que coincida con las API de esos frameworks.
¿Qué sucede si CapSolver no puede resolver el CAPTCHA? Implemente una lógica de reintento en su script o verifique su cuenta de CapSolver en busca de problemas como saldo insuficiente. Registre errores para la depuración.
¿Necesito proxies con CapSolver? El ejemplo usa ReCaptchaV2TaskProxyless, pero es posible que se necesiten proxies para CAPTCHA específicos de la región. La rotación de proxy integrada de BrowserCloud puede complementar esto.

Conclusión

La integración de CapSolver con BrowserCloud crea una combinación poderosa para automatizar tareas web que encuentran CAPTCHA. La resolución de CAPTCHA impulsada por IA de CapSolver garantiza que sus scripts Puppeteer en BrowserCloud puedan omitir las medidas anti-bot, mientras que la infraestructura escalable y el soporte de proxy de BrowserCloud mejoran la confiabilidad de la automatización. Esto es particularmente valioso para el raspado web, las pruebas automatizadas y la generación de contenido, donde los CAPTCHA son obstáculos comunes.

Para comenzar, regístrese en BrowserCloud y CapSolver, obtenga sus claves de API e implemente el ejemplo de código proporcionado. Explore la documentación de CapSolver y la documentación de BrowserCloud para conocer las funciones avanzadas y los tipos de tareas adicionales. ¡Pruebe esta integración en su próximo proyecto de automatización y experimente flujos de trabajo fluidos e ininterrumpidos!

Bono para usuarios de Browser: Use el código promocional BROWSERCLOUD al recargar su cuenta de CapSolver y reciba un crédito de bonificación exclusivo del 6 %, sin límites ni vencimiento.

image
  • BrowserCloud: Admite Puppeteer, Selenium y Playwright, ejecutando navegadores Chrome.

CapSolver: Compatible con cualquier cliente con capacidad HTTP, incluyendo extensiones de navegador para Chrome y Firefox.

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