Rotar proxies es una buena idea porque ayuda a evitar la detección y evita que los sitios web bloqueen tu dirección IP. Los sitios web pueden rastrear y bloquear direcciones IP que realizan demasiadas solicitudes en un corto periodo de tiempo, o aquellas asociadas con actividades de scraping.
Podemos utilizar el sitio web Free Proxy List para compilar una lista con proxies que podamos rotar con cada solicitud `axios`.
Ten en cuenta que la lista de proxies que puedas encontrar en el sitio web puede diferir de la lista que yo he recopilado. La lista que he creado tiene este aspecto:
const proxiesList = [
{
protocol: 'http',
host: '217.6.28.219',
port: 80
},
{
protocol: 'http',
host: '103.21.244.152',
port: 80
},
{
protocol: 'http',
host: '45.131.4.28',
port: 80
}
];
Muy bien, volvamos a incluir la propiedad `proxy` en la configuración de `axios`. Pero en lugar de utilizar un solo proxy, elegiremos uno al azar de nuestra lista de proxies. El código tendrá este aspecto:
res = await axios.get('https://api.ipify.org?format=json', {
proxy: proxiesList[Math.floor(Math.random() * proxiesList.length)]
})
Este es el contenido del archivo index.js:
// Import axios
const axios = require('axios');
const proxiesList = [
{
protocol: 'http',
host: '217.6.28.219',
port: 80
},
{
protocol: 'http',
host: '172.67.180.244',
port: 80
},
{
protocol: 'http',
host: '45.131.4.28',
port: 80
}
];
(async () => {
// For storing the response
let res
try {
// Make a GET request with Axios
res = await axios.get('https://api.ipify.org?format=json', {
proxy: proxiesList[Math.floor(Math.random() * proxiesList.length)]
})
// Log the response data
console.log(res.data)
} catch(err) {
// Log the error
console.log(err)
}
// Exit the process
process.exit()
})()