
Emma Foster
Machine Learning Engineer

Axios es una popular biblioteca JavaScript utilizada para realizar solicitudes HTTP tanto desde el navegador como desde Node.js. Simplifica la realización de solicitudes HTTP asíncronas y te permite manejar las respuestas fácilmente con promesas.
Características:
Antes de usar Axios, asegúrate de tener:
Puedes instalar Axios usando npm o yarn:
npm install axios
o
yarn add axios
Así es como se realiza una simple solicitud GET usando Axios:
const axios = require('axios');
axios.get('https://httpbin.org/get')
.then(response => {
console.log('Código de estado:', response.status);
console.log('Cuerpo de la respuesta:', response.data);
})
.catch(error => {
console.error('Error:', error);
});
Obtengamos datos de una API e imprimamos los resultados:
const axios = require('axios');
axios.get('https://jsonplaceholder.typicode.com/posts')
.then(response => {
const posts = response.data;
posts.forEach(post => {
console.log(`${post.title} — ${post.body}`);
});
})
.catch(error => {
console.error('Error:', error);
});
En esta sección, integraremos CapSolver con Axios para evitar los captchas. CapSolver proporciona una API para resolver captchas como ReCaptcha V3 y captcha.
Demostraremos cómo resolver ReCaptcha V3 con CapSolver y usar la solución en una solicitud.
Primero, instala Axios y CapSolver:
npm install axios
npm install capsolver
Ahora, así es como se resuelve un ReCaptcha V3 y se usa la solución en tu solicitud:
const axios = require('axios');
const CAPSOLVER_KEY = 'YourKey';
const PAGE_URL = 'https://antcpt.com/score_detector';
const PAGE_KEY = '6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf';
const PAGE_ACTION = 'homepage';
async function createTask(url, key, pageAction) {
try {
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('Error al crear la tarea 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)); // esperar 5 segundos antes de volver a intentarlo
} while (true);
} catch (error) {
console.error('Error al obtener el resultado 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('Creando tarea CAPTCHA...');
const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
console.log(`ID de la tarea: ${taskId}`);
console.log('Obteniendo el resultado CAPTCHA...');
const solution = await getTaskResult(taskId);
const token = solution.gRecaptchaResponse;
console.log(`Solución de 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(`Puntuación: ${response.score}`);
}
main().catch(err => {
console.error(err);
});
Para enrutar tus solicitudes a través de un proxy con Axios:
const axios = require('axios');
axios.get('https://httpbin.org/ip', {
proxy: {
host: 'proxyserver',
port: 8080,
auth: {
username: 'username',
password: 'password'
}
}
})
.then(response => {
console.log('Cuerpo de la respuesta:', response.data);
})
.catch(error => {
console.error('Error:', error);
});
Puedes manejar cookies en Axios usando la opción withCredentials:
const axios = require('axios');
axios.get('https://httpbin.org/cookies/set?name=value', { withCredentials: true })
.then(response => {
console.log('Cookies:', response.headers['set-cookie']);
})
.catch(error => {
console.error('Error:', error);
});
Puedes enviar encabezados personalizados y realizar solicitudes POST con Axios:
const axios = require('axios');
const headers = {
'User-Agent': 'Mozilla/5.0 (compatible)',
'Accept-Language': 'en-US,en;q=0.5',
};
const data = {
username: 'testuser',
password: 'testpass',
};
axios.post('https://httpbin.org/post', data, { headers })
.then(response => {
console.log('Respuesta JSON:', response.data);
})
.catch(error => {
console.error('Error:', error);
});
Con Axios, puedes administrar fácilmente las solicitudes HTTP tanto en Node.js como en el navegador. Al integrarlo con CapSolver, puedes evitar captchas como ReCaptcha V3 y captcha, lo que permite el acceso a contenido restringido.
Diseñar datos de verificación de antecedentes para agentes de verificación de IA con verificaciones de propósito permitido, registros conscientes de disputas, frescura de la fuente, revisión humana y registros de auditoría.

Construir datos de registros judiciales para agentes de investigación de inteligencia artificial con proveniencia de la fuente, verificaciones de censura, recopilación consciente de tarifas, recuperación de navegador acotada y revisión humana.
