CAPSOLVER
Blog
Como resolver reCaptcha v3 com Node.JS

Como resolver reCAPTCHA v3 com Node.JS

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

28-Nov-2025

Automatizar ferramentas de SEO, raspagem de resultados do Google Search, fluxos de trabalho de bot ou crawlers sem navegador frequentemente exige interagir com sites protegidos pelo reCAPTCHA v3. Ao contrário do reCAPTCHA v2, a versão 3 não exibe desafios de imagem — ela atribui uma pontuação de risco silenciosa de 0,0 a 1,0, e bots geralmente recebem pontuações abaixo de 0,3.
Para obter comportamento semelhante ao humano e obter pontuações estáveis 0,7–0,9, seu script de automação deve:

  • Enviar cabeçalhos apropriados
  • Usar pageAction correto
  • Gerar um token real com um solucionador confiável

Neste guia, você aprenderá a resolver reCAPTCHA v3 usando Node.js + CapSolver, com um script pronto para executar, dicas de configuração e melhores práticas para maximizar a qualidade da pontuação.

⚙️ Pré-requisitos

  • Node.JS instalado
  • Chave de API do CapSolver

🤖 Passo 1: Instalar Pacotes Necessários

Execute os seguintes comandos para instalar os pacotes necessários:

JS Copy
npm install axios

👨‍💻 Passo 2: Código Node.JS para resolver reCaptcha v3 e obter pontuação 0,7–0,9

Aqui está um script de exemplo em Node.JS para realizar a tarefa:

js Copy
const PAGE_URL = "https://antcpt.com/score_detector";
const PAGE_KEY = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf";
const PAGE_ACTION = "homepage";
const CAPSOLVER_KEY = "SuaChave"

async function createTask(url, key, pageAction) {
    try {
      // Defina o ponto final da API e o payload conforme documentação do serviço.
      const apiUrl = "https://api.capsolver.com/createTask";
      const payload = {
        clientKey: CAPSOLVER_KEY,
        task: {
          type: "ReCaptchaV3TaskProxyLess",
          websiteURL: url,
          websiteKey: key,
          pageAction: pageAction
        }
      };
      const headers = {
        'Content-Type': 'application/json',
      };
      const response = await axios.post(apiUrl, payload, { headers });
      return response.data.taskId;
  
    } catch (error) {
      console.error("Erro ao criar tarefa de CAPTCHA: ", error);
      throw error;
    }
  }
  
  async function getTaskResult(taskId) {
    try {
      const apiUrl = "https://api.capsolver.com/getTaskResult";
      const payload = {
        clientKey: CAPSOLVER_KEY,
        taskId: taskId,
      };
      const headers = {
        'Content-Type': 'application/json',
      };
      let result;
      do {
        const response = await axios.post(apiUrl, payload, { headers });
        result = response.data;
        if (result.status === "ready") {
          return result.solution;
        }
        await new Promise(resolve => setTimeout(resolve, 5000)); // aguardar 5 segundos antes de tentar novamente
      } while (true);
  
    } catch (error) {
      console.error("Erro ao obter resultado do CAPTCHA: ", error);
      throw error;
    }
  }
  

function setSessionHeaders() {
  return {
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="107", "Chromium";v="107"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': 'Windows',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip, deflate',
    'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,en-US;q=0.7',
  };
}

async function main() {
    
    const headers = setSessionHeaders();
    console.log("Criando tarefa de CAPTCHA...");
    const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
    console.log(`ID da tarefa: ${taskId}`);

    console.log("Recuperando resultado do CAPTCHA...");
    const solution = await getTaskResult(taskId);
    const token = solution.gRecaptchaResponse;
    console.log(`Solução do token ${token}`);


  const res = await axios.post("https://antcpt.com/score_detector/verify.php", { "g-recaptcha-response": token }, { headers });
  const response = res.data;
  console.log(`Pontuação: ${response.score}`);
}

main().catch(err => {
  console.error(err);
});

⚠️ Altere estas variáveis

  • capsolver.api_key: Obtenha sua chave de API no Painel do Capsolver.
  • PAGE_URL: Substitua pela URL do site para o qual deseja resolver o reCaptcha v3.
  • PAGE_KEY: Atualize com a chave específica do site com reCAPTCHA.
  • PAGE_ACTION: Substitua pela pageAction da página. Você pode ler este blog

👀 Mais informações

Conclusão

Resolver o Google reCAPTCHA v3 é essencial para tarefas modernas de automação, como monitoramento de SEO, raspagem de SERP, fluxos de trabalho de conta e sistemas de verificação de backend. Usando Node.js + CapSolver, você pode gerar com confiança tokens de reCAPTCHA com alta pontuação e evitar ser marcado como tráfego automatizado.

Ao configurar corretamente sitekey, pageAction, cabeçalhos e seguir a estrutura de tarefa do CapSolver, sua pipeline de automação se torna estável, escalável e resistente à detecção de reCAPTCHA.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais