
Ethan Collins
Pattern Recognition Specialist

Este tutorial explica cómo resolver reCAPTCHA v2 usando la API de CapSolver con Node.js. Cubre implementaciones tanto sin proxy como con proxy, incluye instrucciones paso a paso para la configuración y proporciona ejemplos de código de Node.js listos para usar. Al seguir este tutorial, los desarrolladores pueden integrar el manejo de reCAPTCHA v2 en sus flujos de automatización o recopilación de datos de manera eficiente y confiable.
reCAPTCHA v2 sigue siendo uno de los mecanismos más comúnmente utilizados de verificación humana en la web. Para los desarrolladores que trabajan con flujos automatizados, extracción de datos o automatización a gran escala de navegadores, manejar reCAPTCHA v2 de manera eficiente es un desafío técnico recurrente.
En este artículo, recorremos una implementación práctica de Node.js para resolver reCAPTCHA v2 usando la API de CapSolver. Aprenderás a configurar tu entorno, instalar dependencias necesarias y implementar soluciones tanto con como sin proxy. Los ejemplos incluidos están orientados a producción y están diseñados para adaptarse fácilmente a casos de uso del mundo real.
Ejecute los siguientes comandos para instalar los paquetes requeridos:
npm install axios
Aquí tienes un script de ejemplo de Node.JS para realizar la tarea:
const axios = require('axios');
const PAGE_URL = ""; // Reemplazar con su Sitio web
const SITE_KEY = ""; // Reemplazar con su Sitio web
const CLIENT_KEY = ""; // Reemplazar con su clave de API de 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("Obteniendo resultado de la tarea para el ID de tarea: " + 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 recibido: ${response.solution.gReCaptcharesponse}`);
}
catch (error) {
console.error(`Error: ${error}`);
}
}
main();
Aquí tienes un script de ejemplo de Node.JS para realizar la tarea:
const axios = require('axios');
const PAGE_URL = ""; // Reemplazar con su Sitio web
const SITE_KEY = ""; // Reemplazar con su Sitio web
const CLIENT_KEY = ""; // Reemplazar con su clave de API de CAPSOLVER
const PROXY = "https://nombre_de_usuario:contraseña@host:puerto";
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("Obteniendo resultado de la tarea para el ID de tarea: " + 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 recibido: ${response.solution.gRecaptchaResponse}`);
}
catch (error) {
console.error(`Error: ${error}`);
}
}
main();
Resolver reCAPTCHA v2 en Node.js no necesita ser complejo. Al aprovechar la API de CapSolver, los desarrolladores pueden implementar una solución limpia y escalable que funcione de manera confiable en diferentes configuraciones de sitios web. Ya sea que elija una configuración sin proxy para la simplicidad o un enfoque con proxy para un mayor control, los ejemplos de este tutorial proporcionan una base sólida para uso en producción.
Las tareas sin proxy utilizan la infraestructura interna de CapSolver y son más sencillas de implementar, mientras que las tareas con proxy le permiten controlar la reputación de la IP y la ubicación geográfica para obtener mayores tasas de éxito en sitios más estrictos.
Use ReCaptchaV2Task cuando el sitio web objetivo exija consistencia de IP o aplique restricciones regionales que requieran una configuración de proxy específica.
La mayoría de las tareas se completan en unos pocos segundos. El tiempo real depende de la complejidad del sitio, la dificultad del desafío y si se utiliza un proxy.
Sí. Las funciones proporcionadas son modulares y pueden integrarse en recolectores de datos, pipelines de automatización o flujos de trabajo basados en navegador.
¿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.
