
Aloísio Vítor
Image Processing Expert
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.
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:
BrowserCloud admite una gama de tareas de automatización, que incluyen:
Estos casos de uso a menudo encuentran CAPTCHA, lo que hace que la integración de CapSolver sea esencial para una automatización ininterrumpida.
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.
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:
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.
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.
Instale las dependencias necesarias:
npm install puppeteer node-fetch@2 dotenv
Cree un archivo .env con sus claves de API:
BROWSER_CLOUD_TOKEN=su_token_de_browsercloud
CAPSOLVER_API_KEY=su_clave_de_api_de_capsolver
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);
}
})();
| 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.
Esta sección describe la ejecución del script en una página de demostración con una casilla de verificación reCAPTCHA v2:
g-recaptcha-response, simulando una verificación exitosa de CAPTCHA.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.
| 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. |
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.
CapSolver: Compatible con cualquier cliente con capacidad HTTP, incluyendo extensiones de navegador para Chrome y Firefox.
Guía de captcha para flujos de trabajo de datos aprobados: aprende tipos de desafíos, manejo de API, consistencia de proxy, reintentos y uso responsable.

API rápida para resolver CAPTCHA para automatización: comparar flujos de trabajo de tokens, desafíos soportados, verificaciones de latencia e integración de CapSolver responsable.
