Débloquez les sites web et protégez votre identité avec les proxies et Axios Node.js
Suciu Dan le 25 avril 2023

Qu'est-ce qu'Axios ?
Axios est une bibliothèque client HTTP populaire, basée sur des promesses, qui vous permet de faire des requêtes HTTP dans Node.js. Elle est légère et facile à utiliser, ce qui en fait un excellent choix pour les projets de web scraping.
Axios prend en charge un large éventail de fonctionnalités, telles que les proxies, la conversion automatique des données JSON, la prise en charge de l'annulation des requêtes et la prise en charge des intercepteurs, qui vous permettent de gérer des tâches telles que l'authentification et la gestion des erreurs.
Qu'est-ce qu'une procuration ?
Les proxys, également connus sous le nom de serveurs proxy, servent d'intermédiaires entre un client (tel qu'un navigateur web ou un scraper) et un serveur cible (tel qu'un site web).
Le proxy reçoit les demandes du client et les transmet au serveur cible. Le serveur cible renvoie ensuite la réponse au proxy, qui la renvoie à son tour au client.
Dans le cadre du web scraping, vous pouvez utiliser des proxys pour dissimuler l'adresse IP du scraper, de sorte que le site web que vous scrapez ne détecte pas et ne bloque pas la requête. En outre, l'utilisation de plusieurs serveurs mandataires peut contribuer à empêcher la détection et le blocage de la requête.
Certains fournisseurs de proxy proposent des options de rotation d'IP, ce qui vous permet d'alterner les proxies pour éviter d'être bloqué.
Conditions préalables
Pour utiliser un proxy avec Axios et Node.js, vous devez avoir installé Node.js et npm (Node Package Manager) sur votre ordinateur. Si vous ne l'avez pas encore fait, vous pouvez les télécharger et les installer depuis le site web de Node.js.
Une fois que vous avez installé Node.js et npm, ouvrez le terminal, créez un nouveau dossier pour le projet, et lancez la commande `npm init`. Suivez les instructions et créez un fichier package.json de base.
Installez axios en utilisant cette commande :
npm install axios
Effectuer une requête HTTP
Effectuons notre première requête avec Axios. Nous allons envoyer une requête GET au point de terminaison ipify. Cette requête nous renverra notre adresse IP.
Créez un fichier index.js et collez le code suivant :
// Import axios
const axios = require('axios');
(async () => {
// For storing the response
let res
try {
// Make a GET request with Axios
res = await axios.get('https://api.ipify.org?format=json')
// Log the response data
console.log(res.data)
} catch(err) {
// Log the error
console.log(err)
}
// Exit the process
process.exit()
})()
Nous commençons par importer la bibliothèque axios et utilisons la méthode get pour envoyer une requête au point de terminaison api.ipify.org.
Vous pouvez exécuter le code en utilisant la commande `node index.js` dans le terminal. La sortie devrait afficher votre adresse IP. Vérifiez le résultat en accédant à l'URL dans votre navigateur.
Utilisation de proxies avec Axios
Avant d'écrire le moindre code, rendez-vous sur le site Free Proxy List et choisissez le proxy le plus proche de chez vous. Dans mon cas, je choisirai un proxy pour l'Allemagne.
La méthode `get` d'axios supporte un second paramètre appelé options. Dans ce paramètre, nous pouvons définir les détails du proxy.
Notre requête GET précédente avec un proxy se présente comme suit :
res = await axios.get('https://api.ipify.org?format=json', {
proxy: {
protocol: 'http',
host: '217.6.28.219',
port: 80
}
})
En exécutant le code, vous constaterez que l'adresse IP renvoyée est différente de la vôtre. Cela s'explique par le fait que la requête est acheminée via un serveur proxy, protégeant ainsi votre adresse IP de toute détection.
Qu'en est-il de l'authentification ?
Lorsque vous vous abonnez à un service proxy premium, vous recevez un nom d'utilisateur et un mot de passe à utiliser dans votre application pour l'authentification.
L'objet `proxy` d'Axios possède une propriété auth qui peut recevoir des informations d'authentification. Un exemple de requête GET utilisant cette configuration apparaîtrait comme suit :
res = await axios.get('https://api.ipify.org?format=json', {
proxy: {
protocol: 'http',
host: '217.6.28.219',
port: 80,
auth: {
username: "PROVIDED_USER",
password: "PROVIDED_PASSWORD"
}
}
})
Définir le proxy comme une variable d'environnement
Une autre façon de configurer un proxy dans Axios est de définir les variables d'environnement `http_proxy` ou `https_proxy`. Cette méthode vous permet de ne pas configurer les détails du proxy dans les commandes d'Axios, car ils seront automatiquement obtenus à partir des variables d'environnement.
Pour une compatibilité multiplateforme, je recommande l'installation du paquet `cross-env` qui implémente une commande de type export pour Windows.
Installez le paquet globalement à l'aide de cette commande :
npm install -g cross-env
Nettoyons le code de `axios.get` et amenons-le à la version initiale. Le code devrait ressembler à ceci :
res = await axios.get('https://api.ipify.org?format=json')
Au lieu d'exécuter simplement le code avec node index.js, nous inclurons l'URL du proxy devant la commande comme suit :
cross-env https_proxy=http://217.6.28.219:80/ node index.js
La sortie du script doit être l'adresse IP du proxy, et non la vôtre. Pour le confirmer, vous pouvez visiter l'URL ipify dans votre navigateur.
Procurations tournantes
La rotation des proxys est une bonne idée car elle permet d'éviter la détection et empêche les sites web de bloquer votre adresse IP. Les sites web peuvent suivre et bloquer les adresses IP qui effectuent trop de requêtes dans un court laps de temps, ou celles qui sont associées à des activités de scraping.
Nous pouvons utiliser le site Free Proxy List pour compiler une liste de proxies que nous pouvons faire tourner à chaque requête `axios`.
Veuillez noter que la liste des mandataires que vous trouverez sur le site web peut différer de la liste que j'ai compilée. La liste que j'ai créée ressemble à ceci :
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
}
];
Très bien, remettons la propriété `proxy` dans la configuration de `axios`. Mais au lieu d'utiliser un seul proxy, nous allons en choisir un au hasard dans notre liste de proxies. Le code ressemblera à ceci :
res = await axios.get('https://api.ipify.org?format=json', {
proxy: proxiesList[Math.floor(Math.random() * proxiesList.length)]
})
Voici le contenu du fichier 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()
})()
Utilisation des proxies WebScrapingAPI
L'utilisation de proxies premium à partir d'un service comme WebScrapingAPI est préférable à l'utilisation de proxies gratuits car ils sont plus fiables, plus rapides et offrent une meilleure sécurité. Les proxies premium sont moins susceptibles d'être bloqués par des sites web et ont une latence plus faible.
En revanche, les proxys gratuits peuvent être lents, peu fiables, contenir des logiciels malveillants et sont susceptibles d'être bloqués par des sites web.
Vous voulez essayer WebScrapingAPI ? Pas de problème, inscrivez-vous à notre essai gratuit de 14 jours et vous aurez accès à toutes les fonctionnalités intéressantes et recevrez même 5 000 crédits pour vous amuser.
Une fois que vous avez un compte, rendez-vous sur le terrain de jeu de l'API et sélectionnez l'onglet Mode Proxy dans la section Échantillons de code.

Utilisons l'URL Proxy dans notre code. La requête GET d'axios ressemblera à ceci :
res = await axios.get('https://api.ipify.org?format=json', {
proxy: {
host: 'proxy.webscrapingapi.com',
port: 80,
auth: {
username: 'webscrapingapi.render_js=0.device=desktop.proxy_type=datacenter',
password: '[YOUR_API_KEY]'
}
}
})
La propriété `username` vous permet d'activer ou de désactiver des fonctionnalités spécifiques de l'API. Gardez à l'esprit que vous devez également définir votre clé API dans la propriété `password`. Vous pouvez consulter la documentation complète ici.
Chaque fois que vous exécuterez ce code, vous recevrez une adresse IP différente, car WebScrapingAPI fait tourner les IP à chaque demande. Vous pouvez en savoir plus sur cette fonctionnalité en lisant la documentation sur le mode proxy.
En outre, vous avez la possibilité de passer d'un proxy de centre de données à un proxy résidentiel. Pour plus d'informations sur les différents types de proxies que nous proposons, consultez la documentation sur les proxies.
Conclusion
L'utilisation d'un proxy est un aspect important du web scraping, car il vous permet de cacher votre adresse IP et d'accéder à des sites web bloqués. Axios est une bibliothèque puissante pour le scraping de données, et lorsqu'elle est associée à un proxy fiable, vous pouvez obtenir une extraction de données efficace et rapide.
En utilisant un service de proxy premium comme WebScrapingAPI, vous aurez accès à un large éventail de fonctionnalités, y compris la rotation des IP et la possibilité de basculer entre les proxys de centre de données et les proxys résidentiels.
Nous espérons que cet article vous a apporté une compréhension utile de l'utilisation d'un proxy avec Axios et Node.js et de la façon dont il pourrait être bénéfique pour vos besoins de scraping. N'hésitez pas à vous inscrire à notre essai gratuit de 14 jours pour tester notre service et explorer toutes ses caractéristiques et fonctionnalités.
Nouvelles et mises à jour
Restez au courant des derniers guides et nouvelles sur le web scraping en vous inscrivant à notre lettre d'information.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Articles connexes

Explorez les complexités du scraping des données de produits Amazon avec notre guide approfondi. Des meilleures pratiques aux outils tels que l'API Amazon Scraper, en passant par les considérations juridiques, apprenez à relever les défis, à contourner les CAPTCHA et à extraire efficacement des informations précieuses.


Apprenez quel est le meilleur navigateur pour contourner les systèmes de détection de Cloudflare lorsque vous faites du web scraping avec Selenium.


Apprenez à scraper des tableaux HTML avec Golang pour une extraction de données puissante. Explorez la structure des tableaux HTML et construisez un scraper web en utilisant la simplicité, la concurrence et la bibliothèque standard robuste de Golang.
