
Sora Fujimoto
AI Solutions Architect

Automatizar interacciones del navegador a menudo requiere manejar desafíos CAPTCHA, especialmente cuando se trabaja con herramientas como Puppeteer. En esta guía, explicaremos cómo configurar Puppeteer JS con la extensión CapSolver para resolver reCAPTCHA v2 de manera eficiente. Aunque esta guía se enfoca en reCAPTCHA v2, este mismo enfoque puede extenderse a otros tipos de CAPTCHA soportados por CapSolver.
Al finalizar este artículo, entenderás cómo instalar las dependencias requeridas, configurar la extensión CapSolver, y activar la resolución de CAPTCHA directamente dentro de una sesión del navegador controlada por Puppeteer.
⚠️ En este blog, explicaremos cómo configurar Puppeteer JS con la extensión CapSolver para resolver reCAPTCHA v2. Sin embargo, este enfoque también puede aplicarse a otros tipos de CAPTCHA.
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Descargar el archivo con la extensión, y descomprimirlo en la carpeta ./CapSolver.Browser.Extension en la raíz del proyecto.
La extensión tiene muchas configuraciones, incluyendo resolución automática de CAPTCHA, soporte de proxy y opciones de control detallado. Estas configuraciones están disponibles en el archivo ./assets/config.json.
Estas configuraciones son:
{
"apiKey": "SuApiKey",
"useCapsolver": true,
"useProxy": false,
"proxyType": "http",
"hostOrIp": "",
"port": "",
"proxyLogin": "",
"proxyPassword": "",
"enabledForBlacklistControl": false,
"blackUrlList": [],
"enabledForRecaptcha": true,
"enabledForRecaptchaV3": true,
"enabledForcaptcha": true,
"reCaptchaMode": "token",
"captchaMode": "click",
"reCaptchaDelayTime": 0,
"captchaDelayTime": 0,
"reCaptchaRepeatTimes": 10,
"reCaptcha3RepeatTimes": 10,
"captchaRepeatTimes": 10
}
Ingrese su clave de API en el archivo de configuración de la extensión ./assets/config.json. La clave debe asignarse al campo apiKey. Puede copiar su clave de API directamente desde el panel de control de CapSolver.
Ejemplo:
apiKey: "CAP-4FDBD3SDFSD-23S-2-3"
En este ejemplo, reCaptchaMode está configurado como token. Aunque también está disponible el modo click, se recomienda generalmente el modo token para reCAPTCHA.
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer');
(async () => {
const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
puppeteer.use(StealthPlugin())
const browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
executablePath: executablePath()
});
const [page] = await browser.pages()
})();
A continuación, abra la página https://www.google.com/recaptcha/api2/demo y envíe la CAPTCHA a CapSolver.
Utilice page.goto() para navegar a la página objetivo. La CAPTCHA puede enviarse para resolverla automáticamente o manualmente.
En este ejemplo, la activamos manualmente esperando por el checkbox de CAPTCHA y haciendo clic en él.
await page.goto('https://site.example')
// Esperando por el elemento con el selector CSS "#recaptcha-anchor-label"
await page.waitForSelector('#recaptcha-anchor-label')
// Hacer clic en el elemento
await page.click('#recaptcha-anchor-label')
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer');
(async () => {
const pathToExtension = require('path').join(__dirname, 'CapSolver.Browser.Extension');
puppeteer.use(StealthPlugin())
const browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
executablePath: executablePath()
});
const [page] = await browser.pages()
// Abriendo una página
await page.goto('https://site.example')
// Esperando por el elemento con el selector CSS "#recaptcha-anchor-label"
await page.waitForSelector('#recaptcha-anchor-label')
// Hacer clic en el elemento
await page.click('#recaptcha-anchor-label')
})();
Has resuelto correctamente reCAPTCHA v2 usando Puppeteer y la extensión CapSolver. Esta configuración ofrece una forma flexible y escalable de manejar desafíos CAPTCHA dentro de un entorno de navegador real. Al ajustar la configuración de la extensión, el mismo flujo de trabajo puede reutilizarse para otros tipos de CAPTCHA soportados por CapSolver, lo que lo hace adecuado para pruebas, automatización y tareas a gran escala basadas en navegador.
1. ¿Puede usarse este método en modo headless?
La extensión de navegador CapSolver requiere un entorno de navegador visible. Por esta razón, se recomienda headless: false al usar el enfoque basado en la extensión.
2. ¿Funciona esta configuración para tipos de CAPTCHA distintos de reCAPTCHA v2?
Sí. La extensión CapSolver soporta múltiples tipos de CAPTCHA. Puedes habilitar o deshabilitar solucionadores específicos en el archivo config.json y adaptar el flujo de trabajo en consecuencia.
3. ¿Es necesario un proxy al usar la extensión CapSolver?
Un proxy es opcional. La extensión soporta configuración de proxy, pero muchos casos de uso funcionan sin él. El uso de proxy depende del sitio web objetivo y de los requisitos de automatización.
4. ¿Cuál es la diferencia entre los modos token y click para reCAPTCHA?
El modo token recupera la solución CAPTCHA de manera programática y es generalmente más estable para automatización. El modo click simula la interacción del usuario con el checkbox de CAPTCHA.
5. ¿Puede usarse esta configuración en entornos de producción?
Sí. Con una configuración adecuada, manejo de errores y consideraciones de escalabilidad, este enfoque puede integrarse en flujos de automatización de navegador de producción.
¿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.
