Comment configurer proxys dans Selenium pour le Web Scraping ?

Comment faire, Python, proxys, 27 novembre 20245 minutes de lecture

Lorsque vous travaillez avec Selenium pour le web scraping ou l'automatisation, l'intégration de proxys est indispensable. proxys vous permet de contourner les interdictions, les limites de taux et les restrictions géographiques, ce qui rend vos tâches transparentes et efficaces. Mais la configuration de proxys dans Selenium peut être un défi, en particulier si vous avez affaire à l'authentification ou si vous devez surveiller les requêtes HTTP. C'est là que Selenium Wire entre en jeu.

Selenium-Wire

Selenium Wire est une version étendue de Selenium qui ajoute des fonctionnalités avancées en vous permettant d'authentifier facilement proxys, d'intercepter les requêtes et les réponses HTTP et de déboguer le trafic réseau.

Dans ce guide, nous allons vous montrer comment configurer proxys dans Selenium à l'aide de selenium-wire et le webdriver-manager. En règle générale, vous devez télécharger les fichiers binaires des pilotes web à partir des navigateurs et procéder à des mises à jour régulières. Les webdriver-manager simplifie ce processus en se chargeant de ces tâches pour vous.

À la fin de ce blog, vous aurez une configuration Selenium entièrement adaptée à ProxyScrape proxys , prête à relever tous les défis qui se présenteront à vous. Allons-y, plongeons !

TL;DR

Pour accéder au script complet sans passer par le tutoriel, cliquez sur ce lien pour copier le code complet.

Conditions préalables 

Avant de nous plonger dans la configuration de proxys dans Selenium, assurez-vous que les outils et bibliothèques suivants sont installés et prêts à l'emploi :

  • Python installé
    • Assurez-vous que Python 3.7 ou une version plus récente est installé sur votre système.
    • Vous pouvez télécharger la dernière version sur le site officiel de Python.
  • Paquets Python requis (Pip Install)
    • selenium-wire
    • webdriver-manager

Exécutez la commande suivante pour installer toutes les dépendances :

pip install selenium-wire webdriver-manager

Note : Il se peut que vous rencontriez l'erreur "ModuleNotFoundError : Aucun module nommé blinker._saferef". Ce problème peut être résolu en mettant à jour la bibliothèque blinker vers la version 1.7.0.

  • Commencez par Désinstallation la version actuelle de clignotant
pip uninstall blinker
  • Installez ensuite la version spécifique mentionnée ci-dessus :
pip install blinker==1.7.0

Les conditions préalables étant réunies, nous allons décomposer la configuration du script en trois étapes simples :

Configuration de proxys dans Selenium : Le script

Maintenant que nous avons abordé les conditions préalables, passons au script proprement dit. Ce guide pas à pas vous aidera à intégrer les éléments suivants ProxyScrape résidentiel proxys avec Selenium en utilisant selenium-wire et webdriver-manager.

1. Importation des bibliothèques requises

Nous commençons par importer les bibliothèques nécessaires :

import re
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

2. Configuration du proxy

Définissez les détails de votre proxy ProxyScrape :

proxy_address = "rp.proxyscrape.com:6060"
proxy_username = "votre_nom_de_proxy"
proxy_password = "votre_mot_de_passe_proxy"
  • Remplacer les espaces réservés (nom_du_proxy, mot_de_passe du_proxy) avec vos coordonnées ProxyScrape .
  • rp.proxyscrape.com:6060 est le point de terminaison du proxy résidentiel ProxyScrape .

3. Options du fil Selenium

Configurer le proxy dans Selenium Wire :

sw_options = {
   'proxy': {
       'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
       'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
   }
}

4. Configuration des options de Chrome

Optimiser les paramètres de Chrome pour de meilleures performances :

chrome_options = Options()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

5. Initialiser WebDriver

Mise en place selenium-wire avec webdriver-manager:

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, seleniumwire_options=sw_options, options=chrome_options)
  • ChromeDriverManager : Télécharge et configure automatiquement le binaire ChromeDriver correspondant à la version de votre navigateur.
  • seleniumwire_options : Configure le proxy pour Selenium Wire.
  • options : Applique les paramètres spécifiques à Chrome.

6. Accéder au site web cible

Naviguez vers le point de terminaison ProxyScrape Judge pour tester votre proxy :

driver.get('https://ssl-judge2.api.proxyscrape.com/')
  • ProxyScrape Juge : Ce point d'accès renvoie des informations sur le proxy utilisé, telles que votre adresse IP et les en-têtes.

7. Analyse de la réponse

Extraire et afficher votre adresse IP proxy en utilisant des expressions rationnelles :

# Exemple : Extraire l'IP de la réponse
response = driver.page_source

# utilisation d'une simple expression rationnelle pour analyser l'adresse IP d'origine
print("Réponse :", réponse)
print("Votre IP est :", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# quitter l'instance du navigateur
driver.quit()
  • Explication des expressions rationnelles :
    • Correspond à l'en-tête HTTP_X_FORWARDED_FOR et extrait l'IP mandatée
    • Divise le résultat pour isoler l'adresse IP

Conclusion

En conclusion, l'utilisation de ProxyScrape residential proxys avec Selenium Wire est une solution robuste pour tous ceux qui ont besoin de capacités avancées de web scraping et d'automatisation avec une confidentialité et une sécurité accrues.

En suivant ce guide, vous pouvez mettre en place un environnement transparent qui non seulement contourne les restrictions, mais nécessite également un minimum d'efforts de configuration. Cette méthode s'appuie sur des outils puissants tels que Selenium Wire et WebDriver Managerpour gérer et acheminer efficacement le trafic via proxys, en veillant à ce que vos tâches de scraping restent efficaces et fiables.

Si vous avez besoin d'aide pour le web scraping ou si vous avez des questions sur notre produit, n'hésitez pas à nous contacter via le chat en direct. Vous pouvez également rejoindre notre communauté Discord pour obtenir de l'aide et des mises à jour.