Cómo usar Axios para Web Scraping

Emma Foster
Machine Learning Engineer
23-Sep-2024
¿Qué es Axios?

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:
- Basado en promesas: Utiliza promesas de JavaScript, lo que facilita la gestión de operaciones asíncronas.
- Soporte para navegador y Node.js: Funciona sin problemas en ambos entornos.
- Análisis JSON automático: Analiza automáticamente las respuestas JSON.
- Interceptores: Admite interceptores de solicitud y respuesta para administrar solicitudes y manejar respuestas globalmente.
- Manejo de errores: Proporciona mecanismos integrados para manejar errores.
Prerrequisitos
Antes de usar Axios, asegúrate de tener:
Instalación
Puedes instalar Axios usando npm o yarn:
bash
npm install axios
o
bash
yarn add axios
Ejemplo básico: Realizar una solicitud GET
Así es como se realiza una simple solicitud GET usando Axios:
javascript
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);
});
Ejemplo de raspado web: Obtener datos JSON de una API
Obtengamos datos de una API e imprimamos los resultados:
javascript
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);
});
Manejo de captchas con CapSolver y Axios
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.
Ejemplo: Resolver ReCaptcha V3 con CapSolver y Axios
Primero, instala Axios y CapSolver:
bash
npm install axios
npm install capsolver
Ahora, así es como se resuelve un ReCaptcha V3 y se usa la solución en tu solicitud:
javascript
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);
});
Manejo de proxys con Axios
Para enrutar tus solicitudes a través de un proxy con Axios:
javascript
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);
});
Manejo de cookies con Axios
Puedes manejar cookies en Axios usando la opción withCredentials:
javascript
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);
});
Uso avanzado: Encabezados personalizados y solicitudes POST
Puedes enviar encabezados personalizados y realizar solicitudes POST con Axios:
javascript
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);
});
Conclusión
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.
Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.
Máse

¿Qué es la mejor extensión para resolver CAPTCHA 2026?
En el mundo en constante evolución de la seguridad en línea, los desafíos CAPTCHA se han convertido en un obstáculo común para los usuarios de internet...

Lucas Mitchell
12-Dec-2025

Lumiproxy: Proxy Premium para Raspado de Web y Recolección de Datos
En este artículo, mostraremos qué es Lumiproxy y los servicios que ofrecen.

Ethan Collins
12-Dec-2025

Genlogin: Revoluciona tu experiencia de automatización web
En este artículo, te mostraremos qué es Genlogin y los servicios que ofrecen.

Rajinder Singh
12-Dec-2025

Proxys.io: Proxys individuales para cualquier tarea
En este artículo, te mostraremos qué es Proxys.io y los servicios que ofrecen.

Nikolai Smirnov
12-Dec-2025

Tabproxy: Buen valor de proxy residencial en el extranjero
En este artículo, te mostraremos qué es Tabproxy y los servicios que ofrecen.

Lucas Mitchell
12-Dec-2025

Proxys Residenciales IP2World: Soluciones Líderes Globales de Proxy IP
En este artículo, les mostraremos qué es IP2World y los servicios que ofrecen.

Ethan Collins
12-Dec-2025

