///
JavaScript ReCaptcha v.2
January 15, 2025

Como resolver o ReCaptcha v2 em JavaScript usando o Selenium&CapMonster Cloud

Executaremos o código via Node.js, portanto, faça o download com antecedência e instale-o em seu computador.

 

  • Em seguida, crie uma pasta para um novo projeto, nomeie-o, por exemplo, BypassRecaptchav2Js, inicie o VS Code e abra a pasta criada.

 

  • Crie um arquivo ".env" e adicione todos os parâmetros necessários a ele:
CAPMONSTER_API_KEY=YOUR_API_KEY
WEBSITE_KEY=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
WEBSITE_URL=https://www.google.com/recaptcha/api2/demo

 

  • Carregue o pacote.json com o comando no terminal: npm init, precisamos desse arquivo para poder ver uma lista de todos os módulos e dependências instalados. Abra um terminal e instale os pacotes necessários com o comando "npm i @zennolab_com/capmonstercloud-client dotenv selenium selenium-webdriver". 

 

  • Crie um arquivo "main.js" e comece a escrever o código. Primeiro, vamos importar todos os componentes e carregar os dados:
require('dotenv').config();
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2ProxylessRequest } = require('@zennolab_com/capmonstercloud-client');

const CAPMONSTER_API_KEY = process.env.CAPMONSTER_API_KEY;
const WEBSITE_KEY = process.env.WEBSITE_KEY;
const WEBSITE_URL = process.env.WEBSITE_URL;

 

  • Agora precisamos iniciar o navegador, encontrar o elemento captcha e criar uma solicitação de resolução no CapMonster Cloud:
async function solveRecaptcha() {
 Const options = new chrome.Options();
    const driver = await new Builder().forBrowser('chrome').setChromeOptions(options).build();

    try {
        aguardar driver.get(WEBSITE_URL);
       console.log('Página aberta, reCAPTCHA resolvendo...');

 

  • Agora vamos enviar uma solicitação com a tarefa criada para o servidor para resolver o reCAPTCHA: 
// Inicializando o cliente CapMonster
        const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CAPMONSTER_API_KEY }));

        // Criar uma solicitação para um reCAPTCHA resolvendo o tipo V2 Proxyless
       const recaptchaV2ProxylessRequest = new RecaptchaV2ProxylessRequest({
            websiteURL: WEBSITE_URL,
             websiteKey: WEBSITE_KEY,
         });

        // resolução do reCAPTCHA usando o CapMonster
       const solution = await cmcClient.Solve(recaptchaV2ProxylessRequest);
        console.log('Solution from CapMonster:', solution);

        // Recuperar um token de um objeto de solução
        const token = solution.solution.gRecaptchaResponse;

 

  • Implementaremos a solução na página e criaremos um envio de formulário subsequente após a resolução bem-sucedida do captcha: 
// Inserindo o resultado em um formulário
        await driver.executeScript((result) => {
           document.getElementById('g-recaptcha-response').value = result;
            console.log('Token in the console:', result); // Saída do token para o console
        }, token);

        console.log('O token foi inserido no formulário!');

       aguarde driver.findElement(By.id('recaptcha-demo-submit')).click();
       console.log('Formulário enviado!'); // Etapa opcional

        // Pausa de 10 segundos
        await new Promise(resolve => setTimeout(resolve, 10000));

    } catch (error) {
        console.error('Error:', error);
     } finally {
        aguardar driver.quit();
     }
}

solveRecaptcha();

 

 

Código completo: 

require('dotenv').config();
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2ProxylessRequest } = require('@zennolab_com/capmonstercloud-client');

const CAPMONSTER_API_KEY = process.env.CAPMONSTER_API_KEY;
const WEBSITE_KEY = process.env.WEBSITE_KEY;
const WEBSITE_URL = process.env.WEBSITE_URL;

função async solveRecaptcha() {
 const options = new chrome.Options();
 Const driver = await new Builder().forBrowser('chrome').setChromeOptions(options).build();

    try {
        aguardar driver.get(WEBSITE_URL);
       console.log('Página aberta, reCAPTCHA resolvendo...');

 Inicialização do cliente CapMonster
        const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CAPMONSTER_API_KEY }));

        // Criar uma solicitação para um reCAPTCHA resolvendo o tipo V2 Proxyless
       const recaptchaV2ProxylessRequest = new RecaptchaV2ProxylessRequest({
            websiteURL: WEBSITE_URL,
             websiteKey: WEBSITE_KEY,
         });

        // solução reCAPTCHA usando o CapMonster
       const solution = await cmcClient.Solve(recaptchaV2ProxylessRequest);
        console.log('Solution from CapMonster:', solution);

        // Recuperar um token de um objeto de solução
       const token = solution.solution.gRecaptchaResponse;

         // Inserir o resultado em um formulário
        await driver.executeScript((result) => {
           document.getElementById('g-recaptcha-response').value = result;
            console.log('Token in the console:', result); // Saída do token para o console
        }, token);

        console.log('O token foi inserido no formulário!');

       aguarde driver.findElement(By.id('recaptcha-demo-submit')).click();
       console.log('Formulário enviado!'); // Etapa opcional

        // Pausa de 10 segundos
        await new Promise(resolve => setTimeout(resolve, 10000));

    } catch (error) {
        console.error('Error:', error);
     } finally {
        aguardar driver.quit();
     }
}

solveRecaptcha();

 

 

Explicação do código:

 

Importando bibliotecas: 

dotenv é usado para carregar variáveis de ambiente do arquivo .env.

selenium-webdriver é usado para automatizar o navegador usando o WebDriver.

selenium-webdriver/chrome fornece opções para personalizar o navegador Chrome.

@zennolab_com/capmonstercloud-client fornece ferramentas para trabalhar com o CapMonster Cloud.

 

Carregamento de variáveis de ambiente: o dotenv é usado para carregar variáveis de ambiente do arquivo .env, como CAPMONSTER_API_KEYWEBSITE_KEYWEBSITE_URL.

 

solveRecaptcha função: cria uma instância do driver do Chrome usando o Selenium WebDriver.

Inicializa o cliente CapMonster usando a CAPMONSTER_API_KEY carregada.

Vai para um site com reCAPTCHA.

Cria uma solicitação para uma solução do tipo reCAPTCHA V2 Proxyless.

Resolve o reCAPTCHA usando o CapMonster e obtém uma solução.

Insere o token resultante (solução) em um formulário em uma página da Web usando JavaScript.

Opcionalmente, envie o formulário clicando no botão com id 'recaptcha-demo-submit'.

Espera 10 segundos após a resolução.

Termina o driver.

 

try-catch-finally block: 

O bloco try contém o código principal de execução da automação.

O bloco catch trata de quaisquer exceções e imprime uma mensagem de erro.

O bloco finally garante que o driver seja fechado mesmo que ocorra um erro.

 

Calling solveRecaptcha() função: executa a função solveRecaptcha() para resolver o reCAPTCHA ao executar o script.

 

 

Vamos executar nosso código com o comando no terminal: node main.js e veja o que acontece: 

none provided

Note: Gostaríamos de lembrá-lo de que o produto é usado para automatizar testes em seus próprios sites e em sites aos quais você tem acesso legal.

ItGuy
geear
Programa de afiliados para desenvolvedores de software
Ganhe até 30% dos gastos dos seus usuários com a evasão de captcha
✅ Solicitação enviada
Obrigado pelo seu interesse em nosso programa de parcerias! Entraremos em contato com você dentro de 7 dias úteis.
Solicitação para participar
Preencha o formulário para enviar uma solicitação para o programa de afiliados.
Mais artigos