Quand j’ai mis le nez dans l’extraction de données web, je pensais franchement que ce serait du gâteau : « On chope un peu de HTML et c’est plié, non ? » Avec le recul, je réalise à quel point l’extraction de données web est devenue une compétence essentielle, que tu bosses dans la vente, l’e-commerce ou l’analyse de marché. Le web déborde d’infos — il y a plus et ce chiffre grimpe chaque jour — et toutes les boîtes veulent mettre la main sur des données exploitables. Mais voilà le hic : la plupart de ces infos sont planquées derrière des pages dynamiques, du JavaScript ou des éléments interactifs, donc inaccessibles avec les outils classiques.
C’est là que Selenium Python entre en scène. Cet outil te permet d’automatiser un vrai navigateur, ce qui rend possible l’extraction de données même sur les sites dynamiques les plus retors. Mais, comme tu vas le voir dans ce tutoriel selenium python pour débutants, ce n’est pas toujours aussi simple qu’on l’imagine. On va se faire un exemple concret — extraire des infos produits sur — pour voir comment Selenium fonctionne en vrai. Et, parce que je suis adepte de la simplicité, je te montrerai aussi comment des solutions récentes comme permettent d’arriver au même résultat en un temps record (et quasiment sans écrire une ligne de code).
Pourquoi l’extraction de données web est devenue incontournable (et pourquoi les sites dynamiques compliquent tout)
Aujourd’hui, l’extraction de données web n’est plus réservée aux geeks. C’est devenu un vrai levier pour les équipes commerciales, marketing, e-commerce ou opérations. Surveiller les prix des concurrents ? Générer des leads ? Analyser les avis clients ? L’extracteur python est la clé. D’ailleurs, visent en priorité les données de prix, et 80 à 90 % des données en ligne sont non structurées — donc impossible de juste copier-coller dans Excel.
Mais il y a un os : les sites modernes sont dynamiques. Le contenu se charge via JavaScript, certaines infos sont cachées derrière des boutons ou nécessitent de scroller. Les extracteurs classiques comme requests
ou BeautifulSoup ne voient que le HTML statique — c’est comme lire un journal qui ne se met jamais à jour. Si les données que tu veux n’apparaissent qu’après un clic, un scroll ou une connexion, il te faut un outil qui agit comme un vrai utilisateur.
C’est quoi Selenium Python et pourquoi l’utiliser pour l’extraction de données ?
En bref, Selenium est un outil qui automatise un navigateur. Tu peux écrire des scripts Python qui contrôlent un navigateur réel : cliquer sur des boutons, remplir des formulaires, scroller, et bien sûr, extraire des données qui n’apparaissent qu’après ces actions.
Qu’est-ce qui différencie Selenium Python des extracteurs classiques ?
- Selenium Python : Automatise un vrai navigateur (genre Chrome), exécute le JavaScript, interagit avec les éléments dynamiques et attend que le contenu soit chargé — comme le ferait un humain.
- Requests/BeautifulSoup : Récupère seulement le HTML statique. C’est rapide et léger, mais ça ne gère pas le JavaScript ni les contenus générés à la volée.
Imagine Selenium comme un assistant robotisé : il peut tout faire dans le navigateur, à condition de lui donner des instructions précises (et d’être un peu patient).
Quand utiliser Selenium ?
- Scroll infini (réseaux sociaux, listes de produits…)
- Filtres interactifs ou menus déroulants (genre choisir une taille de chaussure sur )
- Contenu derrière une connexion ou des pop-ups
- Applications web monopage (React, Vue, etc.)
Si tu veux juste extraire du texte statique d’une page simple, BeautifulSoup suffit. Mais pour tout ce qui bouge, Selenium est ton meilleur pote.
Préparer ton environnement Selenium Python
Avant de passer à la pratique, on installe ce qu’il faut. Je t’accompagne étape par étape, même si tu débutes.
1. Installer Python et Selenium
Vérifie que tu as Python 3. Télécharge-le sur le . Pour vérifier :
python --version
Ensuite, installe Selenium avec pip :
pip install selenium
Ça te met la dernière version de Selenium pour Python. Facile, non ?
2. Télécharger et configurer ChromeDriver
Selenium a besoin d’un « driver » pour piloter ton navigateur. Pour Chrome, c’est .
- Vérifie la version de Chrome : Ouvre Chrome, Menu → Aide → À propos de Google Chrome.
- Télécharge le ChromeDriver qui va bien : Prends la version qui correspond à ton navigateur.
- Décompresse et place le driver : Mets
chromedriver.exe
(ou l’équivalent Mac/Linux) dans ton PATH système, ou dans le dossier de ton projet.
Astuce : Des packages Python comme webdriver_manager
peuvent télécharger les drivers automatiquement, mais pour commencer, la méthode manuelle suffit.
3. Tester ton installation
On vérifie que tout roule. Crée un fichier Python appelé test_selenium.py
:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
print(driver.title)
driver.quit()
Lance-le. Chrome devrait s’ouvrir, aller sur , afficher le titre, puis se fermer. Si tu vois le message « Chrome est contrôlé par un logiciel de test automatisé », c’est gagné !
Ton premier script Selenium Python : extraction sur
On passe à la pratique. Objectif : extraire les noms et prix des produits sur .
Étape 1 : Ouvrir le navigateur et accéder à la page
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.allbirds.com/collections/mens")
Étape 2 : Attendre le chargement du contenu dynamique
Les sites dynamiques ne chargent pas tout d’un coup. On utilise les fonctions d’attente de Selenium :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "div.product-card"))
)
(Vérifie les bons sélecteurs CSS en inspectant la page. Ici, on part du principe que les produits sont dans div.product-card
.)
Étape 3 : Repérer les éléments et extraire les données
products = driver.find_elements(By.CSS_SELECTOR, "div.product-card")
print(f"{len(products)} produits trouvés")
data = []
for prod in products:
name = prod.find_element(By.CSS_SELECTOR, ".product-name").text
price = prod.find_element(By.CSS_SELECTOR, ".price").text
data.append((name, price))
print(name, "-", price)
Tu devrais obtenir un truc du genre :
24 produits trouvés
Wool Runner - 110 $
Tree Dasher 2 - 135 $
...
Étape 4 : Enregistrer les données dans un fichier CSV
On écrit les résultats dans un fichier CSV :
import csv
with open("allbirds_products.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["Nom du produit", "Prix"])
writer.writerows(data)
N’oublie pas de fermer le navigateur :
driver.quit()
Ouvre ton fichier CSV, et voilà : noms et prix des produits, prêts à être analysés.
Gérer les galères courantes de l’extraction de données web avec Selenium Python
Dans la vraie vie, l’extraction de données, ce n’est pas toujours un long fleuve tranquille. Voici comment gérer les soucis les plus fréquents :
Attendre le chargement des éléments
Les sites dynamiques peuvent être lents. Utilise les attentes explicites :
WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".product-card"))
)
Ça évite que ton script tente de récupérer des éléments avant qu’ils n’existent.
Gérer la pagination
Tu veux plus que la première page de résultats ? Parcours les pages :
while True:
try:
next_btn = driver.find_element(By.LINK_TEXT, "Next")
next_btn.click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".product-card")))
except Exception:
break # Plus de pages
Ou, pour le scroll infini :
import time
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
Gérer les pop-ups et les connexions
Un pop-up te bloque ? Ferme-le :
driver.find_element(By.CSS_SELECTOR, ".modal-close").click()
Automatiser une connexion ? Remplis les champs et valide :
driver.find_element(By.ID, "email").send_keys("user@example.com")
driver.find_element(By.NAME, "login").click()
Attention : les CAPTCHA et l’authentification à deux facteurs, c’est une autre histoire.
Les limites de Selenium Python pour l’extraction de données web
Soyons clairs : Selenium est puissant, mais il a ses défauts :
- Lent : Chaque page lance un navigateur complet, images et scripts compris. Pour 1 000 pages, prévois du temps !
- Gourmand en ressources : Ça pompe du CPU et de la RAM. Si tu lances plusieurs navigateurs en même temps, il te faut une bonne bécane.
- Configuration parfois galère : Faire matcher ChromeDriver avec ton navigateur, gérer les mises à jour, écrire du code pour chaque site… ça peut vite devenir lourd.
- Fragile : Si la structure du site change, ton script peut planter du jour au lendemain.
- Nettoyage manuel des données : Pour traduire des descriptions ou analyser des sentiments, il faut ajouter d’autres bibliothèques ou API.
Pour les non-développeurs ou ceux qui veulent des données structurées vite fait, Selenium peut vite sembler trop lourd.
Découvre Thunderbit : l’alternative IA à Selenium Python
Parlons d’un outil qui change la donne pour les pros : . Thunderbit, c’est une extension Chrome d’extracteur web IA qui te permet de collecter des données sur n’importe quel site — sans code, sans prise de tête, en quelques clics.
Ce qui rend Thunderbit unique
- Détection intelligente des champs : Clique sur « Suggérer les champs IA » et l’IA de Thunderbit repère direct les infos à extraire — noms de produits, prix, images, etc.
- Extraction sur les sous-pages : Tu veux les détails des pages produits ? Thunderbit peut cliquer et récupérer les infos complémentaires, tout seul.
- Enrichissement des données : Traduction, résumé, analyse de sentiment… tout se fait pendant l’extraction.
- Export en un clic : Balance tes données direct dans Excel, Google Sheets, Notion ou Airtable. Zéro code, zéro galère.
- Interface sans code : Pensé pour les non-développeurs. Si tu sais naviguer sur le web, tu sais utiliser Thunderbit.
Je ne suis pas objectif (j’ai bossé sur Thunderbit !), mais honnêtement, c’est la solution la plus rapide pour obtenir des données web structurées — surtout pour les équipes commerciales, e-commerce ou études de marché.
Thunderbit vs Selenium Python : le match
Regarde les différences :
Critère | Selenium Python | Thunderbit (IA, sans code) |
---|---|---|
Temps d’installation | Moyen à complexe — installer Python, Selenium, ChromeDriver, écrire du code | Ultra rapide — installer l’extension Chrome, prêt en quelques minutes |
Compétences requises | Élevées — il faut savoir coder et comprendre le HTML | Faibles — pointer-cliquer, l’IA s’occupe du reste |
Contenu dynamique | Excellente gestion — JS, clics, scroll | Excellente — fonctionne dans le navigateur, gère AJAX, scroll infini, sous-pages |
Vitesse | Lent — surcharge du navigateur | Rapide pour les petits/moyens volumes — détection IA, accès direct au DOM |
Scalabilité | Difficile à faire évoluer — gourmand en ressources | Idéal pour des centaines/milliers d’éléments ; pas pour du scraping massif |
Traitement des données | Manuel — il faut coder le nettoyage, la traduction, l’analyse | Automatisé — l’IA traduit, résume, catégorise, enrichit en temps réel |
Export | Code personnalisé pour CSV, Sheets, etc. | Export en un clic vers Excel, Google Sheets, Notion, Airtable |
Maintenance | Élevée — sensible aux changements de site | Faible — l’IA s’adapte à de nombreux changements, peu d’entretien |
Fonctionnalités uniques | Automatisation complète du navigateur, workflows sur mesure | Analyses IA, modèles préconçus, enrichissement des données, extracteurs gratuits |
Pour la plupart des pros, Thunderbit, c’est un vrai bol d’air : fini les galères de code ou de config.
Cas concret : extraire les données de avec Thunderbit
Voyons comment Thunderbit s’en sort sur :
- Installe l’
- Va sur
- Clique sur l’icône Thunderbit puis sur « Suggérer les champs IA »
- L’IA de Thunderbit détecte direct les colonnes comme « Nom du produit », « Prix », « URL du produit », etc.
- (Optionnel) Ajoute une colonne « Description (japonais) » ou « Sentiment »
- L’IA traduira ou analysera les données à la volée.
- Clique sur « Extraire »
- Thunderbit rassemble toutes les données produits dans un tableau.
- Exporte en un clic vers Google Sheets, Notion ou Excel
Aucune ligne de code, pas d’attente de chargement du navigateur, pas de CSV à bidouiller. Juste des données propres, prêtes à l’emploi.
Quand choisir Selenium Python ou Thunderbit pour l’extraction de données web ?
Alors, tu choisis quoi ? Voici mon avis :
- Prends Selenium Python si :
- Tu es développeur ou tu veux un contrôle total sur l’automatisation du navigateur
- La tâche d’extraction est très personnalisée ou intégrée à un projet logiciel plus large
- Tu dois automatiser des workflows complexes (connexions, téléchargements, formulaires multi-étapes)
- Tu fais de l’extraction à très grande échelle (avec l’infra qui va avec)
- Choisis Thunderbit si :
- Tu es pro, analyste ou marketeur et tu veux des données rapidement
- Tu veux éviter le code et les configs galère
- Tu veux traduire, analyser ou enrichir les données pendant l’extraction
- Ton projet est de petite à moyenne taille (quelques centaines à quelques milliers de lignes)
- Tu veux exporter direct vers Excel, Google Sheets, Notion ou Airtable
Franchement, j’ai vu des équipes passer des jours à coder des scripts Selenium pour des tâches que Thunderbit gère en dix minutes. Sauf si tu as besoin d’une personnalisation poussée ou de très gros volumes, Thunderbit est souvent la solution la plus rapide et la plus simple.
Bonus : conseils pour un web scraping responsable et efficace
Avant de te lancer, quelques réflexes à avoir :
- Respecte le robots.txt et les conditions d’utilisation : Vérifie toujours ce qui est autorisé. Si un site interdit le scraping, ne force pas.
- Espace tes requêtes : N’inonde pas les serveurs — ajoute des pauses ou utilise des limites intégrées.
- Change de user agent/IP si besoin : Ça peut éviter certains blocages, mais ne contourne pas les règles du site.
- N’extrais pas de données personnelles ou sensibles : Reste sur les infos publiques et respecte la vie privée (RGPD, etc.).
- Utilise les API quand elles existent : Si un site propose une API, privilégie-la — c’est plus stable et plus propre.
- N’extrais pas derrière des connexions ou des paywalls sans autorisation : C’est illégal et pas éthique.
- Note ce que tu fais et gère bien les erreurs : Si tu es bloqué, fais une pause et adapte ta méthode.
Pour en savoir plus sur l’éthique et la légalité du scraping, va voir .
Conclusion : choisis l’outil qui colle à tes besoins d’extraction de données web
L’extraction de données web a bien évolué : des scripts maison aux outils IA sans code. Comme on l’a vu, Selenium Python est une solution puissante pour les développeurs qui doivent gérer des sites dynamiques complexes, mais il demande du temps d’apprentissage et d’entretien. Pour la majorité des pros, Thunderbit offre un accès rapide et simple à des données web structurées — avec traduction, analyse de sentiment et export en un clic.
Mon conseil ? Teste les deux. Si tu es développeur, fais-toi un script Selenium sur un site comme et vois ce que ça implique. Si tu veux des résultats immédiats (ou éviter les prises de tête), essaie . Il y a une version gratuite, alors lance-toi sur ton site préféré dès aujourd’hui.
Et surtout : scrape de façon responsable, exploite tes données intelligemment, et que ton IP ne soit jamais bannie !
Envie d’aller plus loin ? Voici quelques ressources utiles :