
Nikolai Smirnov
Software Development Lead

Automatizar interações no navegador frequentemente exige lidar com desafios CAPTCHA, especialmente quando trabalhando com ferramentas como Puppeteer. Neste guia, vamos explicar como configurar o Puppeteer JS com a extensão CapSolver para resolver o reCAPTCHA v2 de forma eficiente. Embora este tutorial se concentre no reCAPTCHA v2, o mesmo método pode ser estendido para outros tipos de CAPTCHA suportados pelo CapSolver.
Ao final deste artigo, você entenderá como instalar as dependências necessárias, configurar a extensão CapSolver, e disparar a resolução do CAPTCHA diretamente em uma sessão de navegador controlada pelo Puppeteer.
⚠️ Neste blog, explicaremos como configurar o Puppeteer JS com a extensão CapSolver para resolver o reCAPTCHA v2. No entanto, este método também pode ser aplicado a outros tipos de CAPTCHA.
npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Download do arquivo compactado com a extensão, e descompacte-o na pasta ./CapSolver.Browser.Extension na raiz do projeto.
A extensão possui muitas configurações, incluindo resolução automática de CAPTCHA, suporte a proxy e opções de controle detalhado. Essas configurações estão disponíveis no arquivo ./assets/config.json.
Essas configurações são:
{
"apiKey": "SuaApiKey",
"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
}
Insira sua chave de API no arquivo de configuração da extensão ./assets/config.json. A chave deve ser atribuída ao campo apiKey. Você pode copiar sua chave de API diretamente do painel do CapSolver.
Exemplo:
apiKey: "CAP-4FDBD3SDFSD-23S-2-3"
Neste exemplo, reCaptchaMode está definido como token. Embora o modo click também esteja disponível, o modo token é geralmente recomendado 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()
})();
Em seguida, abra a página https://www.google.com/recaptcha/api2/demo e envie o CAPTCHA para o CapSolver.
Usando page.goto(), navegue até a página de destino. O CAPTCHA pode ser enviado para resolução automaticamente ou manualmente.
Neste exemplo, o disparo é feito manualmente, esperando pelo checkbox do CAPTCHA e clicando nele.
await page.goto('https://site.example')
// Aguardando o elemento com o seletor CSS "#recaptcha-anchor-label"
await page.waitForSelector('#recaptcha-anchor-label')
// Clique no 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()
// Abrindo uma página
await page.goto('https://site.example')
// Aguardando o elemento com o seletor CSS "#recaptcha-anchor-label"
await page.waitForSelector('#recaptcha-anchor-label')
// Clique no elemento
await page.click('#recaptcha-anchor-label')
})();
Você resolveu com sucesso o reCAPTCHA v2 usando o Puppeteer e a extensão CapSolver. Esta configuração oferece uma forma flexível e escalável para lidar com desafios CAPTCHA diretamente em um ambiente de navegador real. Ajustando a configuração da extensão, o mesmo fluxo de trabalho pode ser reutilizado para outros tipos de CAPTCHA suportados pelo CapSolver, tornando-o adequado para testes, automação e tarefas baseadas em navegador em larga escala.
1. Este método pode ser usado no modo headless?
A extensão de navegador CapSolver requer um ambiente de navegador visível. Por este motivo, recomenda-se headless: false ao usar a abordagem com extensão.
2. Esta configuração funciona para tipos de CAPTCHA outros que não o reCAPTCHA v2?
Sim. A extensão CapSolver suporta vários tipos de CAPTCHA. Você pode ativar ou desativar solucionadores específicos no arquivo config.json e adaptar o fluxo de trabalho conforme necessário.
3. Um proxy é necessário ao usar a extensão CapSolver?
Um proxy é opcional. A extensão suporta configuração de proxy, mas muitos casos de uso funcionam sem ele. O uso de proxy depende do site-alvo e das necessidades de automação.
4. Qual é a diferença entre os modos token e click para reCAPTCHA?
O modo token recupera a solução do CAPTCHA de forma programática e é geralmente mais estável para automação. O modo click simula a interação do usuário com o checkbox do CAPTCHA.
5. Este setup pode ser usado em ambientes de produção?
Sim. Com configuração adequada, tratamento de erros e considerações de escalabilidade, este método pode ser integrado a fluxos de automação de navegador de produção.
Enfrentando "Chave de Site Inválida do reCAPTCHA" ou "token do reCAPTCHA inválido"? Descubra causas comuns, soluções passo a passo e dicas de solução de problemas para resolver problemas de verificação do reCAPTCHA. Aprenda como corrigir o erro de verificação do reCAPTCHA, por favor tente novamente.

Aprenda como corrigir problemas comuns do reCAPTCHA na raspagem da web. Descubra soluções práticas para o reCAPTCHA v2 e v3 para manter fluxos de coleta de dados sem interrupções.
