Qu'est-ce qu'un proxy ISP et comment l'utiliser pour le Web Scraping ?
Mihnea-Octavian Manolache le 22 février 2023

Les proxys sont un aspect très important du web scraping. Il existe principalement trois types de proxies. Il y a les proxys pour centres de données, les proxys résidentiels et les proxys pour FAI. Chaque type a ses propres cas d'utilisation. Pourtant, il n'existe que peu ou pas d'informations sur ce qu'ils signifient et quand les utiliser dans le cadre du web scraping. Et ce sont surtout les proxys des FAI qui ne sont pas traités par les rédacteurs techniques. C'est pourquoi nous allons aujourd'hui nous concentrer sur ce type de proxies. À la fin de cet article, vous devriez avoir une bonne compréhension de ce qui suit :
- Qu'est-ce qu'une procuration en général et comment fonctionne-t-elle ?
- Quelle est la définition d'un proxy ISP et quelles sont ses particularités ?
- Comment et pourquoi utiliser les proxys des fournisseurs d'accès à Internet pour le web scraping ?
Qu'est-ce qu'un serveur proxy ?
En bref, les proxys sont des logiciels intermédiaires entre les clients et les serveurs. Un proxy sert d'intermédiaire pour les demandes des clients qui recherchent des ressources sur d'autres serveurs. Le flux d'une relation client - proxy - serveur ressemble à ceci :
- Un client se connecte au serveur proxy pour demander un service à un serveur de destination.
- Le serveur mandataire évalue la demande, se connecte au serveur de destination et récupère le service demandé.
- Une fois reçu, il transfère le service au client, sans modification.
En outre, les proxies sont également utilisés pour :
- renforcer la sécurité
- améliorer les performances du réseau
- filtrer le trafic réseau
- bloquer les sites web indésirables
- contourner les restrictions géographiques à l'accès à l'internet
Quelle est la définition des proxys ISP ?
Comme nous l'avons vu dans l'introduction, il existe principalement trois types de mandataires. Pour les deux premiers, la définition est assez simple. Les proxys de centre de données sont des proxys qui appartiennent à des centres de données. Cela signifie que leurs adresses IP sont associées au centre de données. Les proxys résidentiels ont une adresse IP associée à un emplacement physique. En outre, ces adresses IP sont enregistrées au nom d'une personne ou d'une organisation spécifique.
En ce qui concerne les proxys IPS, il y a un peu de confusion. Tout d'abord, ISP signifie "Internet Service Provider" (fournisseur d'accès à Internet). Et comme vous pouvez l'imaginer, toutes les IP résidentielles proviennent des FAI. Ce petit aspect répond en partie à la question. Les proxys ISP se situent quelque part entre les proxys de centre de données et les proxys résidentiels.
La plupart du temps, vous constaterez qu'un proxy ISP est en fait un proxy résidentiel, hébergé sur une machine d'un centre de données. Par conséquent, ces proxys héritent des avantages des deux autres. La liste de ces avantages comprend pour la plupart (mais sans s'y limiter)
- Légitimité de l'adresse IP - l'utilisation d'une adresse IP résidentielle réduit le risque de détection des robots.
- Vitesse - l'hébergement du proxy sur un serveur de centre de données augmente les performances du service.
Pourquoi utiliser les proxys des FAI pour le web scraping ?
L'utilisation de proxys dans le cadre du web scraping est un besoin assez courant. Mais avant d'aborder les proxys des FAI en particulier, permettez-moi de vous expliquer pourquoi les proxys sont importants pour le scraping. Pour commencer, définissons ce qu'est le web scraping. À un niveau élevé, le web scraping consiste à accéder à un serveur dans le but d'en extraire des ressources. Cela se fait généralement à l'aide d'un logiciel automatisé. En outre, le web scraping implique généralement l'envoi d'un grand nombre de requêtes au serveur ciblé dans un court laps de temps.
Comme vous pouvez l'imaginer, cela fait peser une lourde charge sur le serveur. C'est la raison pour laquelle les plateformes web ne sont généralement pas très satisfaites de l'accès des "scrapers" à leurs serveurs. Pour empêcher l'accès de logiciels automatisés, ces plateformes utilisent généralement une sorte de système de détection et de prévention. L'une des méthodes de détection est aussi élémentaire que possible : elle consiste à vérifier l'adresse IP. Il est logique de penser que les adresses IP associées aux centres de données sont plus susceptibles d'héberger des bots.
Et je pense que cela répond assez bien à la question. Si nous prenons en compte les principaux avantages évoqués précédemment, nous aurons une meilleure compréhension de la réponse. Nous utilisons principalement les proxys ISP dans le web scraping pour augmenter notre taux de réussite tout en maintenant des performances optimales. Mais ce n'est pas tout. Explorons d'autres scénarios :
#1 : Accéder à des sites web spécifiques à un lieu
Je suis sûr que vous avez déjà rencontré des sites web qui ciblent des visiteurs provenant d'endroits spécifiques. Dans le domaine du référencement, ce concept est connu sous le nom de "contenu spécifique à la géolocalisation". Les sites web vérifient d'abord l'origine de l'adresse IP du client. Si celle-ci correspond à leur modèle (par exemple, un site web américain ciblant uniquement des clients américains), ils autorisent le client à se connecter. En revanche, si le client vient d'un pays étranger, le site web bloque son accès.
Il s'agit d'un scénario très courant dans le domaine du web scraping. Nous allons donc utiliser des proxys de ce pays spécifique. Vous pouvez d'abord essayer un proxy de centre de données. Si vous êtes toujours bloqué, vous pouvez essayer les proxys des fournisseurs d'accès à Internet, qui offrent un taux de réussite plus élevé.
#2 : Envoi d'un grand nombre de demandes
Lorsque nous voulons accéder à de nombreuses ressources sur un serveur, nous risquons d'imposer une charge importante à ce serveur. Les serveurs considèrent généralement qu'il s'agit d'un abus et bloquent l'adresse IP qui envoie toutes ces demandes. Dans le cas du web scraping, pour éviter d'être bloqué, nous utilisons un système rotatif qui passe d'un fournisseur d'accès à l'autre. De cette manière, le serveur "pensera" que différents utilisateurs résidentiels y accèdent. Ainsi, les demandes en masse ne seront pas bloquées.
Comment utiliser les proxys des fournisseurs d'accès à Internet pour faire du web scraping ?
Il existe principalement deux types de racleurs de sites web :
- Basé sur des clients HTTP simples
- Capable de rendre JavaScript
Le premier type n'est pas très complexe et il est généralement plus rapide, car il ne nécessite pas de rendu JavaScript. C'est la même chose que d'envoyer une commande `curl`. Cependant, la plupart des sites web modernes s'appuient fortement sur JavaScript. Un bon exemple est l'utilisation d'un simple client HTTP pour gratter une plateforme web construite avec React ou Next JS. Dans de tels scénarios, vous obtiendrez probablement en retour un fichier HTML qui dit "please enable JavaScript". Voici un exemple concret d'une application que j'ai construite avec React :
~ » curl https://<REACT_APP>.com
...<body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
Par conséquent, si vous souhaitez créer un scraper moderne, vous devrez très probablement utiliser une version automatisée d'un navigateur web. Celui-ci vous aidera à rendre JavaScript et à effectuer différentes actions sur votre cible.
J'utilise habituellement JavaScript et Puppeteer pour mes exemples. Mais je pense que cette fois-ci, je vais passer à mon premier langage de programmation préféré : Python. Et la solution de choix pour les pilotes web en Python est Selenium. Voyons donc comment construire un scraper web avec Selenium et les proxys des FAI :
#1 : Créer un nouveau projet
Tout d'abord, créons un nouveau répertoire qui contiendra nos fichiers. Ensuite, ouvrez le projet dans votre IDE préféré (le mien est Visual Studio Code) et ouvrez un nouveau terminal. Pour ouvrir un nouveau terminal depuis VSCode, allez dans Terminal > Nouveau terminal. Nous allons créer un nouvel environnement virtuel à l'intérieur du projet et l'activer :
~ " python3 -m venv env && source env/bin/activate
Dans votre projet, créons un nouveau fichier 'scraper.py' et ajoutons-y du code. La structure de base d'un scraper avec Selenium, du point de vue de la programmation fonctionnelle, est la suivante :
from selenium import webdriver
def scrape_page(url) :
driver = webdriver.Chrome()
driver.get(url)
return driver.page_source
Et c'est tout. En 5 lignes de code :
- Nous lançons un navigateur automatisé
- Nous atteignons notre objectif
- Et nous collectons ses ressources.
Mais n'oubliez pas que nous voulons utiliser les proxys des FAI avec Selenium. De telle sorte que notre navigateur ne soit pas le plus furtif, mais disons plus indétectable. Heureusement, les choses sont assez simples en Python (et c'est pour cela que je l'aime). Voici comment nous introduisons les proxies dans Selenium :
from selenium import webdriver
def scrape_page(url, proxy) :
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=%s' % proxy)
driver = webdriver.Chrome(options=options)
driver.get(url)
return driver.page_source
print(scrape_page('http://httpbin.org/ip', '75.89.101.60:80'))
Nous avons seulement ajouté d'autres lignes à l'intérieur de la fonction. La dernière consiste à appeler la fonction. Si vous exécutez le script maintenant, nous devrions être en mesure de voir que la requête provient de 75.89.101.60. Pour les besoins de cet exemple, j'ai utilisé un serveur proxy gratuit . Mais si vous voulez construire un véritable scraper, je vous suggère de vous tourner vers des sources plus fiables. De préférence, des fournisseurs de proxy qui proposent également des proxys pour les FAI.
Comment vérifier l'origine d'une adresse IP ?
Il existe plusieurs façons de vérifier si une adresse IP provient d'un proxy d'un fournisseur d'accès à Internet. Mais puisque nous parlons de DevOps aujourd'hui, vous devriez probablement vous mettre à l'aise avec l'utilisation du terminal. Aujourd'hui, je vais vous présenter `whois`.
Dans Unix et les systèmes d'exploitation de type Unix, `whois` est intégré. Il s'agit d'un utilitaire de ligne de commande qui permet aux utilisateurs de rechercher des informations sur des cibles. Les cibles peuvent être des noms de domaine ou des adresses IP. Ouvrons donc une nouvelle fenêtre de terminal et testons cette commande.
Tout d'abord, envoyons une commande `curl` à l'API proposée par ipify.org. De cette façon, vous pouvez obtenir votre propre adresse IP et effectuer le test en l'utilisant. Si vous n'êtes pas familier avec `curl`, lisez mon article sur l'utilisation de curl.
~ » curl api.ipify.org
<IP_ADDRESS>
Now that we have an IP address to test on, just send your `whois` command. I’ve used my own IP, but feel free to replace <IP_ADDRESS> with yours:
~ » whois <IP_ADDRESS>
...
inetnum: 82.78.XX.0 - 82.78.XX.XX
netname: RO-RESIDENTIAL
descr: RCS & RDS Residential CGN
descr: City: Bucuresti
remarks: INFRA-AW
country: RO
...
Le résultat est plus important, mais je voulais que vous ayez un aperçu de la facilité avec laquelle une IP résidentielle est détectée. Il existe également des API publiques qui permettent de suivre les IP des centres de données, comme celle proposée par incolumitas.
Conclusions
Aujourd'hui, nous avons exploré à la fois les compétences DevOps et les compétences de codage de la construction d'un scraper web. Pour conclure, je vais vous poser une question simple. Peut-on dire que les proxys des FAI ne sont rien d'autre que des proxys de centres de données, cachés derrière une adresse IP résidentielle ? Je pense que cette définition n'est pas la plus exacte, mais elle décrit bien ces proxies.
Chez Web Scraping API, nous utilisons à la fois des proxies résidentiels et des proxies de centre de données. En effet, certaines cibles autorisent le trafic non résidentiel, tandis que d'autres ne le permettent pas. Si vous souhaitez en savoir plus sur l'utilisation des proxys avec notre API, consultez notre documentation.
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.


Commencez avec WebScrapingAPI, la solution ultime de web scraping ! Collectez des données en temps réel, contournez les systèmes anti-bots et bénéficiez d'une assistance professionnelle.


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