Web scraping : 5 méthodes pour scraper un site sans coder
Le web scraping, c’est utiliser un logiciel pour extraire les données d’un site web et les ranger dans un tableau : prix, fiches produits, offres d’emploi, annonces. Pour un freelance, c’est une prestation qui se vend : la veille des prix d’un e-commerçant, le fichier de prospects d’une agence, le suivi des offres d’emploi pour un cabinet de recrutement. En France, c’est légal si vous respectez trois limites (le RGPD quand une personne est identifiable, les conditions d’utilisation du site, sa base de données), et cela se fait sans coder, avec Make, n8n, Apify ou Claude Code. Voici les 5 méthodes de ma vidéo de janvier 2025, revérifiées le 27 octobre 2026.
Le web scraping, c’est quoi exactement
Quand vous ouvrez une page, votre navigateur envoie une demande au site, reçoit du code HTML et l’affiche. Un scraper fait la même demande, mais au lieu d’afficher la page, il en sort les informations qui vous intéressent.
Trois étapes, toujours les mêmes :
- Lire : envoyer la requête, comme un navigateur. Le site répond avec un code 200 (succès) et le HTML de la page.
- Extraire : trouver le prix, le titre ou le lien dans ce HTML, avec une regex, un sélecteur CSS ou une IA.
- Ranger : écrire le résultat dans Google Sheets, Excel, Airtable ou le CRM du client.
Deux mots voisins à ne pas confondre. Une API, c’est le site qui vous donne ses données exprès, dans un format propre. Le crawling consiste à suivre les liens pour découvrir des pages ; le scraping en extrait les données.
Ce que l’on en fait, dans la vidéo : construire des listes de leads, surveiller la concurrence, préparer une étude de marché. Pour vous, ou pour un client qui vous paie pour ça.
Le web scraping est-il légal en France ?
Oui, la technique n’est pas interdite. Ce qui l’encadre, ce sont les données que vous récupérez et ce que vous en faites. Trois règles, vérifiées sur les textes le 27 octobre 2026. Ce n’est pas un conseil juridique : pour un projet client qui touche à des données personnelles, faites valider par un juriste ou par le DPO du client.
Les données personnelles : le RGPD s’applique, même si elles sont publiques
Un nom, un email, un numéro de téléphone, un profil LinkedIn : ce sont des données personnelles. Qu’elles soient visibles par tous n’y change rien. La CNIL l’écrit noir sur blanc dans sa page sur la réutilisation des données en ligne pour le démarchage : ces données, « bien que publiquement accessibles, sont des données personnelles », et elles ne peuvent pas être réexploitées à l’insu des personnes.
Le cas le plus parlant en France : Kaspr, sanctionné de 240 000 euros par la CNIL le 5 décembre 2024. Son extension Chrome récupérait les coordonnées de membres LinkedIn, y compris celles qu’ils avaient limitées à leurs relations. La CNIL lui a aussi reproché une conservation trop longue, une information des personnes arrivée quatre ans après le début de la collecte (en anglais), et l’absence de réponse précise quand on lui demandait d’où venaient les données.
À l’inverse, un prix, un stock, une fiche produit ou une offre d’emploi sans nom ne sont pas des données personnelles : c’est là que vous prenez le moins de risques.
Les conditions d’utilisation du site
Beaucoup de sites interdisent le scraping dans leurs conditions. Airbnb, par exemple, à la section 11.1 de ses conditions de service (mises à jour le 5 février 2026) : « N’utilisez pas de robots, de crawlers, de scrapers ou d’autres moyens automatiques pour accéder à des données ». LinkedIn l’interdit aussi. Passer outre expose au blocage du compte et à une action du site.
La CNIL va dans le même sens. Dans sa fiche du 19 juin 2025 sur le moissonnage (écrite pour l’entraînement des IA, mais la logique vaut pour tous), elle demande d’exclure les sites qui s’y opposent, par leur fichier robots.txt, un CAPTCHA ou leurs conditions.
La base de données du site
Le producteur d’une base de données qui a investi pour la constituer peut interdire qu’on en extraie une partie substantielle (articles L341-1 et L342-1 du Code de la propriété intellectuelle). Leboncoin l’a obtenu en appel contre un site qui reprenait chaque jour ses annonces immobilières pour ses abonnés : 50 000 euros de préjudice financier et 20 000 euros d’atteinte à l’image (cour d’appel de Paris, 2 février 2021).
Relever le prix de 130 produits pour les comparer, ce n’est pas recopier tout un catalogue pour le republier ailleurs.
En pratique, avant chaque projet
- Préférez les données sans nom : prix, stocks, annonces, offres d’emploi.
- Lisez le robots.txt (
exemple.fr/robots.txt) et les conditions du site. - Ralentissez : quelques secondes entre deux pages.
- Ne republiez jamais la base d’un autre.
- Pour un fichier de prospects, dites d’où viennent les données dès le premier contact, laissez la personne s’opposer, effacez ce qui ne sert pas.
Quelle méthode pour quel site
Avant de choisir un outil, regardez le site. Faites un clic droit, puis « Afficher le code source de la page », et cherchez-y un prix ou un titre que vous voyez à l’écran.
| Le site | Comment le reconnaître | La méthode |
|---|---|---|
| Site vitrine | le texte est dans le code source | 1. une requête HTTP, puis l’IA |
| E-commerce simple | les prix sont dans le code source, les pages en ?p=2 | 2. une requête HTTP, puis une regex ou un sélecteur CSS |
| Service avec API publique | une page « API » ou « Développeurs » | 3. un appel d’API avec une clé |
| Site récent (Airbnb) | le code source est presque vide | 4. l’API cachée, dans l’onglet Réseau |
| Réseaux sociaux, Amazon, Google Maps | blocages, connexion obligatoire | 5. un scraper tout fait sur Apify |
Dans la vidéo, je construis tout dans Make, en direct, sans coupe. Les noms de modules sont ceux de la vidéo ; ce qui a changé côté prix et côté outils est indiqué au fil des méthodes.
Méthode 1 : un site vitrine en HTML
Le cas : vous prospectez par email et vous voulez une première ligne personnalisée pour chaque entreprise. Je prends le site de mon agence comme exemple.
- Dans Make, le module HTTP « Make a request » lit la page : l’adresse, la méthode GET, rien d’autre à changer. Make répond avec un code 200 et tout le HTML. Le texte de mon site s’y trouve, entouré d’une balise H1 (un titre de niveau 1).
- Le module « HTML to text » du Text parser retire les balises. Le texte n’est pas parfait (il reste des noms de fichiers), mais c’est bien mieux que d’envoyer du HTML brut à ChatGPT.
- Le module OpenAI « Create a completion », avec GPT-4o, écrit la phrase. Attention : l’API d’OpenAI est un compte à part de ChatGPT, qu’il faut créditer. Le prompt système : « Tu es un assistant en copywriting d’email de prospection, intelligent et serviable ». Le prompt utilisateur demande une phrase d’introduction pour un premier email au fondateur, en s’appuyant sur le texte du site, collé à la suite.
- Le module Gmail « Create a draft » crée le brouillon, sujet « Question rapide ».
Premier raté : le brouillon arrive sans aucun retour à la ligne. Le module attend du HTML, il faut donc une balise <br> à chaque saut de ligne. Je l’écris d’abord à l’envers (</br>), et j’oublie de choisir le dossier Brouillons : deux essais de plus.
Mon prompt était minimal, et ça se voit : la phrase sonne comme une plaquette commerciale. Pour en faire une vraie première ligne, donnez au prompt le nom de la personne, son entreprise et ce que vous vendez. La méthode complète est dans le guide du cold email.
La limite : cette méthode ne marche que si le texte est dans le code source. Sur un site qui charge son contenu après coup, la requête revient presque vide. C’est la méthode 4.
Méthode 2 : un site e-commerce simple, prix et stocks dans Google Sheets
Le cas : un site de piles et batteries, catégorie batteries moto. Le client imaginé est un concurrent qui vend les mêmes produits et veut suivre ces prix chaque jour, voire chaque heure, dans un Google Sheet.
Lire moins de pages
La catégorie fait 6 pages, en ?p=2, ?p=3… Mais le site accepte un paramètre limit : avec limit=130, tous les produits tiennent sur deux pages. Moins de pages à lire, c’est moins de risque d’être bloqué. Pour les tests, je descends à 5 produits.
Extraire les liens des produits avec une regex
Une regex est un motif qui repère un morceau de texte précis. Personne ne les écrit de tête, pas même les développeurs chevronnés : je les fais écrire par l’IA.
- Copiez le HTML de la page catégorie, et l’adresse d’un produit comme exemple.
- Demandez la regex à Claude ou à ChatGPT. ChatGPT a calé sur un HTML aussi long ; Claude le prend comme un fichier joint.
- Testez-la sur regex101.com avant de la mettre dans Make.
- Dans Make, le module « Match pattern » du Text parser, avec « Global match » sur oui.
Premier résultat : le même produit sort plusieurs fois, parce que chaque fiche a plusieurs liens. Je redemande « un seul lien par produit, celui sous la balise H2 ». Cinq liens, cinq produits.
Lire chaque fiche et en sortir 5 champs
Make traite chaque lien à la suite : les modules suivants tournent 5 fois, une par produit. Un second « Make a request » lit la fiche, puis cinq regex en sortent le titre, le prix, la disponibilité, le code article et le poids. Pour savoir dans quelle balise se trouve chaque information, l’extension gratuite Web Developer pour Chrome affiche la balise de l’élément survolé (Information, puis Display Element Information).
Ici, c’est le prix qui coince : la regex rend 0 € au lieu de 17,00 €. Corrigée par Claude, elle rend 17, pris ailleurs dans la page. La solution : lui demander le prix complet (« 17,00 € »), puis passer « Global match » sur non, pour garder la première occurrence. C’est normal que ça ne marche pas du premier coup. On ajoute une étape, on teste, on passe à la suivante : c’est beaucoup plus rapide que de chercher l’erreur dans un scénario de 20 modules.
Ranger sans doublons
Un Google Sheet à 5 colonnes : nom, prix, code, disponibilité, poids. Le module « Add a row » le remplit. Mais à chaque lancement, il recréerait toutes les lignes. La parade :
- « Search rows » cherche le code article du produit dans le tableau (il est unique).
- Un routeur sépare deux cas. Aucun résultat : on ajoute la ligne. Un résultat : on met à jour le prix (« Update a cell », colonne B, ligne trouvée par la recherche).
- Je vérifie en changeant un prix à la main à 13 € : au passage suivant, le vrai prix revient.
Dernier réglage : un module Sleep de 3 secondes entre deux fiches. Un humain n’ouvre pas 100 pages à la seconde ; un site qui voit ce rythme peut bloquer le scraper.
Ce que ça coûte dans Make aujourd’hui
Depuis le 27 août 2025, Make facture en crédits, à raison d’un crédit par opération pour la plupart des modules. Le plan gratuit en donne 1 000 par mois. Ce scénario exécute environ 9 modules par produit (la fiche, les 5 regex, la recherche, l’écriture, la pause) : un seul passage sur 130 produits dépasse donc déjà le plan gratuit. Pour un suivi quotidien, il faut un plan payant.
Dans n8n, le même travail est plus simple. Le nœud HTML, opération « Extract HTML content », extrait par sélecteur CSS : h1 pour le titre, span.price pour un prix affiché dans <span class="price">. Vous n’avez aucune regex à faire écrire. Et n8n compte des exécutions, pas des étapes : un passage sur 130 produits compte pour une exécution. La comparaison complète est dans Make ou n8n.
Méthode 3 : un site avec une API publique
Une API, c’est le serveur du restaurant. Au lieu d’aller chercher vos plats en cuisine (le code source du site), vous passez commande, et le serveur vous rapporte exactement ce que vous avez demandé. C’est plus propre, plus stable, et ça respecte le fonctionnement du site.
Vous en utilisez déjà sans le savoir : dans la méthode 1, les modules ChatGPT et Gmail de Make sont des appels d’API que l’équipe de Make a déjà branchés. Quand un service n’a pas son module, ou qu’il manque la fonction qui vous intéresse, vous appelez son API vous-même.
L’exemple de la vidéo : OpenWeatherMap, une API météo.
- Créez un compte et récupérez votre clé d’API (le paramètre
appid). Une clé, c’est votre identifiant auprès de l’API, comme un mot de passe. - Dans la documentation, trouvez l’appel « météo actuelle » : une adresse avec trois paramètres, la latitude, la longitude et la clé.
- Dans Make, le module HTTP « Make a request », avec cette adresse, les coordonnées de Nîmes et la clé.
Le raté : erreur 401, « Invalid API key ». La documentation l’explique : une clé neuve met quelques heures à s’activer. J’ai coupé la vidéo et repris une ou deux heures plus tard.
Ensuite, cochez « Parse response » : le JSON devient des champs lisibles (temps, température, pression, humidité). La température arrive en Kelvin par défaut ; le paramètre units=metric la donne en degrés Celsius.
Pour ranger, j’ai pris Excel, parce que beaucoup d’entreprises y vivent. Il faut un compte Microsoft 365, et un fichier où les colonnes sont mises en forme de tableau, avec en-tête : sans tableau, le module « Add a table row » ne voit pas le fichier.
Le verdict : quand un site a une API, prenez-la. Les données arrivent déjà structurées, sans regex, et votre scénario ne casse pas au prochain changement de mise en page.
Méthode 4 : un site sophistiqué et son API cachée
Le cas : Airbnb. Une recherche à Nice, quatre nuits en fin d’année, trois enfants. La liste et la carte s’affichent, mais le code source de la page ne contient presque rien. Les données arrivent après coup, par des API internes que le site ne documente pas : les API cachées (hidden API).
- Faites un clic droit, puis « Inspecter », onglet Réseau. Videz le journal et filtrez sur « Fetch/XHR ».
- Relancez la recherche. Des dizaines d’appels défilent. Ouvrez l’aperçu de chacun jusqu’à trouver celui qui renvoie les logements, en JSON.
- Vérifiez en recoupant : une photo ouverte seule correspond au premier logement, la note de 4,67 sur 15 avis aussi, avec le prix d’origine (231 €).
- Reproduisez l’appel dans Make, avec le module HTTP : l’adresse de la requête telle quelle, la méthode (POST ici), deux en-têtes (le navigateur,
sec-ch-ua, et la cléX-Airbnb-API-Key), et le corps de la requête, copié depuis l’onglet « Charge utile ». On y retrouve les filtres de la recherche : les dates, les trois enfants, les coordonnées de Nice.
Réponse : code 200, 18 logements, avec leur titre, leur note, leur nombre d’avis et leur prix. Je n’ai ouvert aucune fiche.
Ce que j’en disais dans la vidéo : une agence qui loue des appartements dans une région touristique peut suivre les prix de ses concurrents et ajuster les siens.
Une correction, près de deux ans plus tard. J’y disais qu’il n’y a « pas d’interdiction formelle » d’utiliser ces API. Pour Airbnb, c’est faux : ses conditions interdisent les scrapers (section 11.1, citée plus haut). La technique marche sur beaucoup de sites, mais lisez leurs conditions avant de la vendre à un client. Et une API cachée change sans prévenir : la clé ou le format bougent, le scénario casse, et c’est vous que le client appelle.
Ce qui a changé : vous n’avez plus à recopier les en-têtes un par un. Dans l’onglet Réseau, faites un clic droit sur la requête, puis « Copier », « Copier en tant que cURL ». Collez le tout dans Claude Code : il repère les en-têtes nécessaires et écrit le script qui rejoue l’appel.
Méthode 5 : réseaux sociaux, Amazon, Google Maps avec Apify
Les très gros sites (réseaux sociaux, Amazon, Google) se défendent. Au premier signe de scraping, ils bloquent l’adresse ou le compte. Pour eux, j’utilise Apify : une place de marché de scrapers tout faits, les Actors, développés par Apify ou par d’autres entreprises qui les y vendent. Instagram, TikTok, Facebook, YouTube, Amazon, AliExpress, Vinted, Etsy, LinkedIn, Google Maps.
Dans la vidéo, la boutique comptait près de 3 000 Actors. Sa page en annonce aujourd’hui plus de 100 000. Le compte se crée en une minute, et le plan gratuit donne 5 dollars d’usage par mois, sans carte bancaire (apify.com, le 27 octobre 2026).
La démonstration : les offres d’emploi LinkedIn
L’Actor LinkedIn Jobs, avec en entrée : le mot « IA » dans l’intitulé, la région Île-de-France, les offres de la dernière semaine, 10 résultats pour tester, des proxies résidentiels (proposés par défaut). Lancement, puis 10 offres, chacune avec :
- l’intitulé, le lieu, la date de publication et le lien de l’offre ;
- le nom de l’entreprise et sa page ;
- la description, le nombre de candidats, le type de contrat, le niveau d’expérience demandé ;
- parfois, la personne qui a publié l’offre.
Puis Make récupère ce lot : le module Apify « Get dataset items », avec l’identifiant du jeu de données (dans Storage, sur Apify). Et le module Airtable « Create a record » remplit une base « Scraping LinkedIn » : titre, description, entreprise, adresse de l’entreprise, lien de l’offre, date, et un statut (nouveau, en cours, fait) pour suivre le traitement.
L’usage : une entreprise qui recrute quelqu’un pour l’IA a un besoin d’IA. Vous pouvez lui écrire : « J’ai vu que vous cherchez quelqu’un pour vous aider sur l’IA. Mon entreprise propose ce type de service, est-ce que ça peut vous intéresser ? » Ajoutez un module ChatGPT derrière, ou un agent IA qui lit chaque offre, et le message part déjà préparé.
Deux limites à garder en tête. Les conditions de LinkedIn interdisent le scraping, même quand c’est un Actor qui le fait pour vous. Et le nom de la personne qui publie l’offre est une donnée personnelle : le RGPD s’applique, comme pour Kaspr.
Pour trouver des prospects sur Google Maps (les entreprises d’un métier dans une ville, celles qui n’ont pas de site), la méthode est détaillée dans scraper Google Maps pour trouver vos premiers clients.
Ce qui a changé chez Apify
Dans la vidéo, il y avait deux façons de payer un Actor : au résultat (10 dollars les 1 000 résultats) ou en location mensuelle (29,99 dollars par mois pour le scraper LinkedIn, avec 3 jours d’essai). La location a disparu le 1er octobre 2026. Les Actors se paient désormais à l’événement (un lancement, un résultat), au prix fixé par leur développeur. Le premier plan payant d’Apify, Starter, coûte 19 dollars par mois.
Apify a aussi son nœud officiel pour n8n (@apify/n8n-nodes-apify), et un serveur MCP : Claude peut lancer lui-même les Actors et trier ce qui revient.
Scraper avec Claude Code et l’IA en 2026
En janvier 2025, je faisais écrire les regex par Claude et je les collais dans Make. Aujourd’hui, Claude Code fait tout le travail : vous décrivez en français ce que vous voulez, il écrit le scraper, le lance, lit les erreurs et corrige. Si une regex rend 0 €, il le voit avant vous.
Lis la page https://www.exemple.fr/batteries-moto?limit=130 et chaque fiche produit qu’elle liste.
Pour chaque produit, récupère le nom, le prix, la disponibilité, le code article et le poids.
Écris le résultat dans produits.csv, une ligne par produit.
Respecte le robots.txt du site et attends 3 secondes entre deux pages.
Teste sur 5 produits avant de lancer les 130.
Pour les sites qui bloquent, branchez Apify en MCP. Claude choisit l’Actor, le lance et vous rend le tableau :
claude mcp add --transport http apify https://mcp.apify.com
Si le MCP vous est encore flou, l’article sur Claude explique ce qu’il ajoute à Claude Code.
L’autre nouveauté, c’est l’extraction par l’IA : vous donnez un lien et une demande en français, et un modèle lit la page à votre place, sans regex ni sélecteur à écrire. C’est ce que montre ScrapeGraphAI, dans ce Reel.
ScrapeGraphAI est une bibliothèque Python open source, sous licence MIT, avec 32 300 étoiles sur GitHub au 27 octobre 2026. Gratuite, oui, mais il lui faut un modèle : gratuit s’il tourne sur votre machine avec Ollama, payant à l’usage avec une clé OpenAI, Gemini ou Groq. Sans coder, le plus simple est encore de demander à Claude Code de l’installer et de l’appeler :
pip install scrapegraphai
playwright install
Installe ScrapeGraphAI dans un environnement virtuel, avec un modèle local via Ollama.
Puis extrais de https://www.exemple.fr/offres la liste des offres : intitulé, ville, date, lien.
Mon verdict. L’extraction par l’IA est parfaite pour une page qui change souvent de mise en page, ou pour un premier essai. Pour 10 000 fiches produits chaque jour, chaque page lue par un modèle se paie en tokens, alors qu’un sélecteur CSS ne coûte rien. Servez-vous de l’IA pour écrire l’extracteur, pas pour lire chaque page. Et l’IA ne change rien aux trois règles de la légalité.
Make, n8n, Apify ou Claude Code : lequel choisir
- Make : l’outil de la vidéo, visuel, avec 1 000 crédits gratuits par mois. Chaque module se paie, donc ça devient cher dès qu’il y a du volume.
- n8n : la même logique, des sélecteurs CSS au lieu des regex, une facturation à l’exécution, et une version que vous pouvez héberger vous-même. Pour démarrer, votre premier workflow n8n.
- Apify : dès que le site bloque, et pour les réseaux sociaux, Amazon ou Google Maps. Vous payez au résultat et quelqu’un d’autre maintient le scraper.
- Claude Code : pour un script que le client garde chez lui, ou une extraction ponctuelle que vous ne voulez pas construire module par module.
Ce que vous pouvez vendre avec ça
À qui : un e-commerçant de 2 à 20 salariés qui vend les mêmes produits que trois ou quatre concurrents (pièces auto, batteries, matériel de sport), et qui relève leurs prix à la main, quand il y pense. Ses concurrents publient leurs prix en clair, sans aucune donnée personnelle : c’est le cas le plus sûr juridiquement.
Ce que vous livrez : en une semaine, un scénario qui lit chaque matin les fiches produits de ses concurrents, un Google Sheet avec une ligne par produit (son prix, celui de chaque concurrent, l’écart), et un email d’alerte dès qu’un concurrent passe sous son prix de plus de 5 %. Une page supplémentaire indique quels sites sont consultés, à quelle fréquence, et la marche à suivre si l’un d’eux modifie sa mise en page.
Comment le présenter : « Combien de temps passez-vous chaque semaine à surveiller les prix de vos concurrents ? Je vous propose un tableau qui se met à jour tout seul chaque matin, avec une alerte dès que l’un d’eux passe sous votre prix. » Venez avec le tableau déjà rempli sur 10 de ses produits : c’est le principe du diagnostic gratuit, il voit le résultat avant de payer. Dans la vidéo, j’évaluais ce genre de prestation entre 1 000 et 6 000 euros.


