Web Scraping avec Claude Code : Scraper un Site Web en Python (Guide 2026)
Web scraping avec Claude Code : scraper un site web en Python avec Requests, BeautifulSoup et Playwright, extraire des données structurées et éviter les blocages.
Web scraping avec Claude Code : récupérer des données du web sans galérer
Le web scraping — extraire automatiquement des données affichées sur des pages web — est l'une des compétences les plus rentables d'un développeur : surveiller des prix, constituer un jeu de données, alimenter un dashboard, générer des leads. Mais c'est aussi un terrain semé d'embûches : sélecteurs CSS qui changent, pages générées en JavaScript, protections anti-bot, structures HTML imbriquées sur dix niveaux. De quoi décourager même les développeurs aguerris.
En 2026, Claude Code transforme radicalement cette tâche. Vous décrivez la donnée à extraire en français — « récupère le titre, le prix et la note de chaque produit de cette page » — et l'agent écrit le scraper Python, choisit la bonne librairie, gère la pagination et corrige tout seul les sélecteurs cassés. Ce guide montre, étape par étape, comment faire du web scraping avec Claude Code en Python, du site statique le plus simple jusqu'aux pages dynamiques protégées. Si vous découvrez l'agent, gardez sous la main notre guide complet de Claude Code qui pose les bases du mode agent autonome.
Sommaire
Pourquoi Claude Code change le web scraping<a id="pourquoi-claude-code-scraping"></a>
Le scraping a toujours été un travail d'orfèvre fragile : on passe 80 % du temps à inspecter le DOM, deviner le bon sélecteur, puis tout recommencer la semaine suivante quand le site change son HTML. C'est précisément le genre de tâche répétitive et contextuelle où un agent IA fait des merveilles.
Trois raisons rendent Claude Code redoutable pour le scraping :
Concrètement, vous passez du rôle de "manœuvre du DOM" à celui d'architecte de données : vous décidez QUOI extraire et POURQUOI, l'agent s'occupe du COMMENT. Pour tirer le meilleur de cette collaboration, la qualité de vos instructions est décisive — voyez notre guide pour écrire un bon prompt pour Claude Code.
Les outils Python du scraping : Requests, BeautifulSoup, Playwright, Scrapy<a id="outils-python-scraping"></a>
Python reste le langage roi du scraping grâce à son écosystème. Claude Code maîtrise les quatre librairies incontournables, et saura choisir la bonne selon votre cible.
Requests + BeautifulSoup — le duo de base
Requests télécharge le HTML d'une page, BeautifulSoup le parse et permet de naviguer dans l'arbre du document. C'est le combo idéal pour les sites statiques (blogs, annuaires, pages produit classiques). Léger, rapide, sans navigateur : parfait pour démarrer.
Playwright — pour les sites en JavaScript
De plus en plus de sites génèrent leur contenu côté client (React, Vue, Angular). Le HTML brut renvoyé par Requests est alors vide. Playwright pilote un vrai navigateur (Chromium, Firefox, WebKit), attend le rendu JavaScript, puis vous donne accès au DOM final. Claude Code l'utilise aussi via le serveur MCP dédié — un sujet détaillé dans notre article sur Claude Code et Playwright MCP.
Scrapy — pour le scraping à grande échelle
Scrapy est un framework complet pour les projets sérieux : milliers de pages, parallélisme, gestion des erreurs, export automatique, respect du robots.txt. Plus lourd à prendre en main, mais imbattable dès que le volume grimpe.
| Outil | Idéal pour | Sites JavaScript | Difficulté |
|---|---|---|---|
| Requests + BeautifulSoup | Sites statiques, démarrage | Non | Facile |
| Playwright | Sites dynamiques, SPA | Oui | Moyenne |
| Scrapy | Gros volumes, crawling | Avec extension | Avancée |
| httpx + selectolax | Performance, async | Non | Moyenne |
Notre recommandation : commencez en Requests + BeautifulSoup pour comprendre la mécanique, passez à Playwright dès qu'une page renvoie du HTML vide, et réservez Scrapy aux projets industriels. C'est exactement la progression que nous conseillons dans nos meilleures pratiques Claude Code.
Préparer son projet et son fichier CLAUDE.md<a id="preparer-projet-scraping"></a>
Commencez par un dossier propre avec un environnement virtuel, puis lancez Claude Code dedans :
mkdir scraper-projet && cd scraper-projet
python3 -m venv .venv && source .venv/bin/activate
claudeAvant toute génération de code, créez un fichier CLAUDE.md à la racine. C'est la mémoire persistante du projet : l'agent le lit au démarrage de chaque session et respecte les règles que vous y posez. Pour un scraper, un bon CLAUDE.md ressemble à ceci :
# Projet : Scraper de veille tarifaire
## Stack
- Python 3.12 + Requests + BeautifulSoup pour les sites statiques
- Playwright uniquement si le HTML est rendu en JavaScript
- Export des données en CSV (pandas)
## Règles de scraping
- Respecter le robots.txt de chaque site cible
- User-Agent réaliste et délai aléatoire de 1 à 3 s entre requêtes
- Jamais plus de 1 requête par seconde sur un même domaine
- Gérer les erreurs réseau avec retry (3 tentatives, backoff)
## Style de code
- Fonctions courtes : fetch_page(), parse_items(), save_csv()
- Typage des fonctions, commentaires en français
- Logger chaque page scrapée et chaque échecCe fichier évite les dérives classiques : un agent qui bombarde le serveur cible, oublie la gestion d'erreurs ou empile les dépendances inutiles. Pour approfondir cette mécanique, consultez notre guide dédié au fichier CLAUDE.md, véritable pierre angulaire d'un projet piloté par l'IA.
Scraper un site statique pas à pas<a id="scraper-site-statique"></a>
Prenons un cas concret et légal : le site d'entraînement books.toscrape.com, conçu spécialement pour s'exercer au scraping. Objectif : récupérer le titre et le prix de chaque livre.
1. Décrire le besoin à l'agent
Vous tapez simplement :
« Écris un script Python avec Requests et BeautifulSoup qui scrape books.toscrape.com. Pour chaque livre de la première page, extrais le titre et le prix, puis affiche les résultats. »
2. Le code généré par Claude Code
Claude produit un script clair et commenté :
import requests
from bs4 import BeautifulSoup
URL = "https://books.toscrape.com/"
HEADERS = {"User-Agent": "Mozilla/5.0 (veille-perso)"}
def scrape_livres():
response = requests.get(URL, headers=HEADERS, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
livres = []
for article in soup.select("article.product_pod"):
titre = article.h3.a["title"]
prix = article.select_one(".price_color").text
livres.append({"titre": titre, "prix": prix})
return livres
if __name__ == "__main__":
for livre in scrape_livres():
print(livre["titre"], "->", livre["prix"])3. Itérer en langage naturel
C'est là que Claude Code brille. Vous enchaînez les demandes sans toucher au code vous-même :
livres.csv avec pandas. »À chaque étape, l'agent modifie le script, le relance et vous montre le résultat. En cinq minutes, vous avez un scraper complet et poli, là où une approche manuelle aurait pris une heure.
Scraper un site dynamique en JavaScript avec Playwright<a id="scraper-site-dynamique"></a>
Le piège classique : votre scraper Requests renvoie un HTML quasi vide, alors que la page affiche bien des données dans le navigateur. C'est le signe d'un rendu côté client : le contenu est injecté par JavaScript après le chargement initial.
La solution consiste à utiliser un vrai navigateur. Demandez à Claude :
« Cette page charge ses produits en JavaScript, Requests renvoie du vide. Réécris le scraper avec Playwright : ouvre la page, attends que les éléments `.product-card` soient visibles, puis extrais nom et prix. »
Claude bascule alors sur Playwright :
from playwright.sync_api import sync_playwright
def scrape_dynamique(url):
with sync_playwright() as p:
navigateur = p.chromium.launch(headless=True)
page = navigateur.new_page()
page.goto(url, wait_until="networkidle")
page.wait_for_selector(".product-card")
produits = []
for carte in page.query_selector_all(".product-card"):
nom = carte.query_selector(".name").inner_text()
prix = carte.query_selector(".price").inner_text()
produits.append({"nom": nom, "prix": prix})
navigateur.close()
return produitsAstuce de pro que Claude appliquera si vous le lui demandez : avant de scraper le HTML rendu, vérifiez l'onglet "Network" du navigateur. Souvent, le site appelle en coulisses une API JSON bien plus simple à exploiter que le DOM. Scraper cette API directement est plus rapide, plus robuste et moins coûteux. Si vous travaillez sur des données métier, sachez d'ailleurs que certaines plateformes proposent une API officielle prête à l'emploi — par exemple immoapi.app pour les données immobilières — ce qui rend le scraping inutile et garantit des données propres et légales.
Extraire des données structurées grâce à l'IA<a id="extraction-ia"></a>
Voici l'approche qui change tout en 2026 : au lieu d'écrire des dizaines de sélecteurs fragiles, on confie l'extraction structurée directement à un modèle de langage. Le principe : on récupère le HTML (ou le texte) d'une page, on l'envoie à Claude via l'API, et on récupère un JSON propre.
L'avantage est énorme : quand le site change son design, votre code continue de fonctionner, car le modèle comprend ce qu'est un "prix" ou une "date de publication", peu importe où ils se trouvent dans la page. Claude Code peut générer ce type de pipeline hybride :
import anthropic, json
client = anthropic.Anthropic()
def extraire_donnees(texte_page):
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
messages=[{
"role": "user",
"content": f"Extrais en JSON la liste des produits "
f"(nom, prix, disponibilite) de ce texte :\n\n{texte_page}"
}],
)
return json.loads(message.content[0].text)On combine ainsi le meilleur des deux mondes : un scraper classique (rapide, peu coûteux) pour récupérer le HTML brut, et l'IA (Haiku, le modèle le plus économique) pour la partie parsing intelligente. Cette logique de pipeline de données rejoint nos articles sur la data science avec Claude Code, Python et pandas, où la donnée collectée devient exploitable pour l'analyse.
Claude Code en action (vidéo)<a id="video-scraping"></a>
Pour visualiser le workflow agentique de bout en bout — décrire la cible, laisser l'agent écrire le code, l'itérer et corriger les erreurs en direct — rien ne vaut une démonstration. La vidéo ci-dessous montre Claude Code en train de piloter un vrai projet, exactement la dynamique que vous reproduirez pour vos scrapers :
Vous remarquerez le rythme : on parle à l'agent, on vérifie le résultat, on ajuste. C'est ce cycle court qui rend le scraping assisté par IA si efficace, là où l'écriture manuelle est laborieuse et sujette aux oublis.
Éviter les blocages : bonnes pratiques anti-bot<a id="eviter-blocages"></a>
Scraper trop vite ou trop maladroitement, c'est se faire bannir en quelques minutes. Demandez à Claude d'intégrer ces protections dès le départ :
Pour les cas vraiment coriaces (Cloudflare, captchas, fingerprinting), il existe des services d'infrastructure dédiés (proxies résidentiels, navigateurs furtifs). Mais avant d'en arriver là, posez-vous la question : ai-je vraiment besoin de scraper, ou existe-t-il une API ? Cette discipline rejoint les principes d'automatisation responsable que prônent des plateformes IA métier comme smartbtp.ai : automatiser oui, mais proprement et durablement.
Légalité et éthique du web scraping<a id="legalite-scraping"></a>
Le scraping n'est pas illégal en soi, mais il est encadré. Quelques règles de bon sens — que Claude Code vous rappellera si vous le lui demandez :
La règle d'or : préférez toujours une API officielle au scraping quand elle existe. C'est plus stable, plus rapide et juridiquement clair. Le scraping reste l'outil de dernier recours, quand la donnée n'est accessible d'aucune autre façon — et Claude Code excelle justement à le rendre propre et maintenable.
FAQ : web scraping avec Claude Code<a id="faq-scraping"></a>
Claude Code peut-il scraper un site directement, sans que j'écrive de code ?
Claude Code génère et exécute le code de scraping pour vous, mais il a besoin d'un outil pour atteindre le web : soit une librairie Python (Requests, Playwright) qu'il pilote, soit le serveur Playwright MCP qui lui donne un vrai navigateur. Vous restez aux commandes, mais vous ne tapez quasiment aucune ligne vous-même.
Quelle librairie Python choisir pour débuter le scraping ?
Commencez par Requests + BeautifulSoup : c'est le combo le plus simple et il couvre la majorité des sites statiques. Passez à Playwright uniquement quand une page renvoie un HTML vide (contenu généré en JavaScript). Claude Code détectera ce cas et vous le signalera.
Comment éviter de se faire bloquer pendant le scraping ?
Utilisez un User-Agent réaliste, espacez vos requêtes avec des délais aléatoires (1 à 3 s), respectez le robots.txt et ne dépassez pas une requête par seconde sur un même domaine. Demandez à Claude Code d'intégrer un système de retry avec backoff exponentiel dès la première version du scraper.
Le web scraping est-il légal ?
Scraper des données publiques est généralement toléré, mais tout dépend du contexte : conditions d'utilisation du site, données personnelles (RGPD), charge imposée au serveur. Ne franchissez jamais un mur d'authentification sans autorisation et privilégiez toujours une API officielle quand elle existe.
Comment exporter les données scrapées ?
Demandez simplement à Claude Code d'ajouter un export. Les formats courants sont le CSV (avec pandas), le JSON ou directement une base de données SQLite. L'agent ajoute la fonction d'export et adapte la structure des données en une seule instruction.
Faut-il toujours scraper, ou existe-t-il des alternatives ?
L'alternative idéale est une API officielle : plus stable, plus rapide et juridiquement claire. Vérifiez toujours, dans l'onglet "Network" du navigateur, si le site appelle une API JSON exploitable avant de scraper le HTML. Le scraping reste l'outil de dernier recours.
Conclusion : faites de la donnée votre superpouvoir
Le web scraping n'est plus réservé aux experts du DOM. Avec Claude Code, vous décrivez la donnée que vous voulez, l'agent écrit le scraper, gère la pagination, contourne les pages JavaScript et corrige les sélecteurs cassés à votre place. Vous gagnez l'essentiel : du temps, et la capacité de transformer n'importe quelle page web en données exploitables.
La prochaine étape logique consiste à automatiser ces scrapers (exécution planifiée, alertes, pipelines de données) et à bâtir des agents IA autonomes autour de vos sources de données. C'est exactement le type de productivité que nous formons.
**Envie d'aller plus loin et de laisser l'IA travailler à votre place ?** Découvrez comment vous faire remplacer par l'IA sur les tâches répétitives : [accédez à la formation complète](/#inscription).
Reçois la cheatsheet Claude Code (gratuite)
Les 30 commandes, raccourcis et prompts que j'utilise tous les jours. Directement dans ta boîte mail.
Zéro spam. Désinscription en un clic.
Envie de maîtriser Claude Code ?
Rejoignez notre formation complète et apprenez à utiliser Claude Code comme un pro.
M'inscrire à la formation