fbpx

Python Selenium : Le guide pour automatiser et scrapper le Web comme un pro

Sujets abordés
S'abonner à la newsletter

Dans l’écosystème de la Data et du développement logiciel, récupérer des données sur le web ou tester une application en ligne fait partie des tâches quotidiennes. Si des bibliothèques comme BeautifulSoup ou Requests excellent sur des pages statiques, elles avouent vite leurs limites face au web moderne. C’est ici qu’intervient Selenium. Couplé à Python, Selenium permet de piloter un véritable navigateur web (Chrome, Firefox, Edge) par programmation, simulant à la perfection les actions d’un être humain.

Chez DATAROCKSTARS, nous enseignons que Python Selenium est l’outil ultime pour le web scraping de sites dynamiques (JavaScript, React, Angular) et pour la mise en place de tests automatisés. Maîtriser Selenium, c’est être capable de franchir les barrières des formulaires de connexion, de cliquer sur des boutons cachés et d’extraire la donnée là où les autres outils échouent.

1. Qu’est-ce que Selenium et comment ça marche ?

Selenium n’est pas un simple aspirateur de code HTML. C’est une suite d’outils dont le cœur repose sur le composant WebDriver. Le WebDriver sert de pont entre votre script Python et l’architecture interne du navigateur choisi.

Lorsque vous lancez un script Selenium, Python envoie des commandes via l’API WebDriver. Le navigateur s’ouvre alors réellement sous vos yeux et exécute les ordres : charger une URL, faire défiler la page (scroll), cliquer sur un lien ou remplir un champ textuel.

2. Configuration initiale : Installer Selenium

Pour commencer à automatiser vos tâches en 2026, la configuration est devenue extrêmement simple. Vous n’avez plus besoin de télécharger manuellement les fichiers exécutables des drivers (comme chromedriver), Selenium s’en occupe désormais automatiquement en arrière-plan.

Il vous suffit d’installer la bibliothèque via votre terminal :

Bash

pip install selenium

Une fois l’installation terminée, vous êtes paré à ouvrir votre première fenêtre automatisée.

3. Écrire son premier script d’automatisation

Voici la structure de base pour lancer un navigateur Chrome, naviguer sur un site et récupérer le titre de la page :

Python

from selenium import webdriver

# Initialisation du navigateur Chrome
driver = webdriver.Chrome()

# Navigation vers le site cible
driver.get("https://www.datarockstars.ai")

# Extraction et affichage du titre de la page
print("Titre du site :", driver.title)

# Fermeture propre du navigateur
driver.quit()

Ce code minimaliste est la fondation de tous vos futurs robots de scraping ou de test.

4. Cibler les éléments de la page (Les Locators)

Pour interagir avec une page web (remplir un formulaire, cliquer sur un bouton), votre script doit savoir précisément quel élément viser. Selenium utilise pour cela la classe By pour localiser les composants HTML grâce à différentes stratégies :

  • By.ID : La méthode la plus rapide et fiable si l’élément possède un identifiant unique.
  • By.NAME : Très utile pour cibler les champs de saisie dans les formulaires.
  • By.CLASS_NAME : Pour viser des éléments partageant un même style graphique.
  • By.XPATH : Le joker universel. L’XPath permet de naviguer dans l’arborescence XML/HTML de la page pour trouver un élément précis, même s’il n’a ni ID ni classe.

Chez DATAROCKSTARS, nous formons nos étudiants à maîtriser l’écriture des sélecteurs XPath, car c’est cette compétence qui garantit la robustesse de vos robots face aux changements de design des sites web.

5. Gérer le dynamisme du Web : L’importance des attentes (Waits)

L’erreur classique du débutant avec Selenium est le fameux bogue NoSuchElementException. Les sites web modernes chargent leurs composants de manière asynchrone (via AJAX/JavaScript). Si votre script cherche un bouton avant que la page n’ait fini de le charger, le script plante.

Pour éviter cela, il faut proscrire les pauses fixes (comme time.sleep(5)) qui ralentissent inutilement vos programmes, et privilégier les Explicit Waits :

Python

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Attendre au maximum 10 secondes qu'un bouton soit cliquable
bouton = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "submit-btn"))
)
bouton.click()

Cette approche cybernétique permet à votre script de s’adapter à la vitesse réelle de connexion du site.

6. Passer inaperçu : Le mode Headless et les options avancées

Exécuter des scripts qui ouvrent constamment des fenêtres graphiques peut s’avérer lourd pour votre machine ou pour des serveurs d’automatisation (CI/CD). Selenium permet de lancer les navigateurs en mode Headless (sans interface graphique). Le navigateur tourne en tâche de fond, invisible, ce qui accélère grandement les traitements.

Python

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")  # Activation du mode sans fenêtre
options.add_argument("--window-size=1920,1080")

driver = webdriver.Chrome(options=options)

7. Selenium vs BeautifulSoup vs Scrapy

Chaque outil a sa spécialité dans l’univers de la récolte de données :

OutilVitesseGestion du JavaScriptDifficultéCas d’usage
Requests / BeautifulSoupUltra-rapideNonFacilePages statiques simples, API
ScrapyTrès rapideLimitée (sans plugin)DifficileProjets industriels de grande échelle
SeleniumModéréeTotale (Simule l’humain)MoyenneFormulaires complexes, Single Page Apps

L’expert en donnée sait combiner ces outils : utiliser Selenium pour passer une barrière d’authentification difficile, puis extraire le code source pour le faire analyser rapidement par BeautifulSoup.

8. Les bonnes pratiques éthiques et légales

Le web scraping est une technique puissante mais encadrée. Avant de lancer un script à l’assaut d’un site web, respectez toujours ces principes :

  • Consultez le fichier robots.txt : Vérifiez les autorisations de scraping du site (ex: https://exemple.com/robots.txt).
  • Ne saturez pas les serveurs : Espacez vos requêtes pour ne pas provoquer de déni de service involontaire (DoS).
  • Respectez le RGPD : Ne collectez pas de données personnelles identifiables sans autorisation légale.

9. Industrialiser vos scripts avec l’écosystème Cloud

Un script Selenium local est parfait pour le prototypage. Cependant, pour des projets d’entreprise, ces robots sont déployés sur des conteneurs Docker et orchestrés dans le Cloud (AWS, Azure) à l’aide d’outils comme Selenium Grid. Cela permet de lancer des dizaines de robots en parallèle sur différents systèmes d’exploitation.

Cette démarche d’automatisation à l’échelle (AIOps / DevOps) est l’un des piliers techniques indispensables pour gérer des flux de données continus.

10. Pourquoi maîtriser l’automatisation avec DATAROCKSTARS

Savoir coder un algorithme est une chose, savoir l’alimenter en données fraîches récupérées directement à la source en est une autre. La maîtrise de Python Selenium est une compétence “couteau suisse” qui donne une valeur immense à votre profil sur le marché du travail, que ce soit pour créer des jeux de données uniques ou pour automatiser des processus business répétitifs.

Chez DATAROCKSTARS, nous transformons la théorie du code en cas concrets d’ingénierie de données. Prêt à faire exécuter vos tâches répétitives par des robots ? Souhaitez-vous découvrir comment notre Bootcamp Data Scientist & AI Engineer peut vous aider à dompter Python Selenium et à propulser vos compétences techniques au niveau de l’élite ?

Quel est l’objectif principal de votre projet actuel avec Selenium : faire du web scraping dynamique ou mettre en place des tests applicatifs automatisés ?

Merci pour votre lecture ! Si vous souhaitez découvrir nos prochains articles autour de la Data et de l’IA, vous pouvez nous suivre sur FacebookLinkedIn et Twitter pour être notifié dès la publication d’un nouvel article !

Partager cet article