
Lucas Mitchell
Automation Engineer

Este guia explica como resolver o reCAPTCHA v2 usando o Node.js com a API do CapSolver. Ele aborda as implementações sem proxy e com proxy, inclui instruções passo a passo para a configuração e fornece exemplos de código do Node.js prontos para uso. Ao seguir este tutorial, os desenvolvedores podem integrar o tratamento do reCAPTCHA v2 em seus fluxos de automação ou coleta de dados de forma eficiente e confiável.
O reCAPTCHA v2 continua sendo um dos mecanismos mais comumente utilizados de verificação humana na web. Para os desenvolvedores que trabalham com fluxos automatizados, extração de dados ou automação em larga escala de navegadores, lidar com o reCAPTCHA v2 de forma eficiente é um desafio técnico recorrente.
Neste artigo, percorremos uma implementação prática do Node.js para resolver o reCAPTCHA v2 usando a API do CapSolver. Você aprenderá como configurar seu ambiente, instalar as dependências necessárias e implementar soluções com e sem proxy. Os exemplos incluídos são orientados para produção e projetados para serem facilmente adaptados a casos reais.
Execute os seguintes comandos para instalar os pacotes necessários:
npm install axios
Aqui está um script de exemplo do Node.JS para realizar a tarefa:
const axios = require('axios');
const PAGE_URL = ""; // Substitua pela sua Website
const SITE_KEY = ""; // Substitua pela sua Website
const CLIENT_KEY = ""; // Substitua pela sua chave da API CAPSOLVER
async function createTask(payload) {
try {
const res = await axios.post('https://api.capsolver.com/createTask', {
clientKey: CLIENT_KEY,
task: payload
});
return res.data;
} catch (error) {
console.error(error);
}
}
async function getTaskResult(taskId) {
try {
success = false;
while(success == false){
await sleep(1000);
console.log("Obtendo resultado da tarefa para o ID da tarefa: " + taskId);
const res = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: CLIENT_KEY,
taskId: taskId
});
if( res.data.status == "ready") {
success = true;
console.log(res.data)
return res.data;
}
}
} catch (error) {
console.error(error);
return null;
}
}
async function solveReCaptcha(pageURL, sitekey) {
const taskPayload = {
type: "ReCaptchaV2TaskProxyless",
websiteURL: pageURL,
websiteKey: sitekey,
};
const taskData = await createTask(taskPayload);
return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
try {
const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
console.log(`Token recebido: ${response.solution.gReCaptcharesponse}`);
}
catch (error) {
console.error(`Erro: ${error}`);
}
}
main();
Aqui está um script de exemplo do Node.JS para realizar a tarefa:
const axios = require('axios');
const PAGE_URL = ""; // Substitua pela sua Website
const SITE_KEY = ""; // Substitua pela sua Website
const CLIENT_KEY = ""; // Substitua pela sua chave da API CAPSOLVER
const PROXY = "https://username:password@host:port";
async function createTask(payload) {
try {
const res = await axios.post('https://api.capsolver.com/createTask', {
clientKey: CLIENT_KEY,
task: payload
});
return res.data;
} catch (error) {
console.error(error);
}
}
async function getTaskResult(taskId) {
try {
success = false;
while(success == false){
await sleep(1000);
console.log("Obtendo resultado da tarefa para o ID da tarefa: " + taskId);
const res = await axios.post('https://api.capsolver.com/getTaskResult', {
clientKey: CLIENT_KEY,
taskId: taskId
});
if( res.data.status == "ready") {
success = true;
console.log(res.data)
return res.data;
}
}
} catch (error) {
console.error(error);
return null;
}
}
async function solveReCaptcha(pageURL, sitekey) {
const taskPayload = {
type: "ReCaptchaV2Task",
websiteURL: pageURL,
websiteKey: sitekey,
proxy: PROXY
};
const taskData = await createTask(taskPayload);
return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
try {
const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
console.log(`Token recebido: ${response.solution.gRecaptchaResponse}`);
}
catch (error) {
console.error(`Erro: ${error}`);
}
}
main();
Resolver o reCAPTCHA v2 no Node.js não precisa ser complexo. Ao utilizar a API do CapSolver, os desenvolvedores podem implementar uma solução limpa e escalável que funcione de forma confiável em diferentes configurações de sites. Seja por meio de uma configuração sem proxy para simplicidade ou uma abordagem com proxy para maior controle, os exemplos deste guia fornecem uma base sólida para uso em produção.
Tarefas sem proxy dependem da infraestrutura interna do CapSolver e são mais fáceis de implementar, enquanto tarefas com proxy permitem que você controle a reputação do IP e a localização geográfica para maiores taxas de sucesso em sites mais rigorosos.
Use ReCaptchaV2Task quando o site de destino exigir consistência de IP ou aplicar restrições regionais que requerem uma configuração de proxy específica.
A maioria das tarefas é concluída em alguns segundos. O tempo real depende da complexidade do site, dificuldade do desafio e se um proxy for usado.
Sim. As funções fornecidas são modulares e podem ser incorporadas a roteadores, pipelines de automação ou fluxos de trabalho baseados em navegador.
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.
