ChatGPT et le web scraping : ce qui marche, ce qui casse, et ce qui fait mieux

Dernière mise à jour le July 8, 2026
ChatGPT et le web scraping : ce qui marche, ce qui casse, et ce qui fait mieux

La semaine dernière, un commercial de mon équipe m’a demandé un coup de main pour récupérer les coordonnées d’environ 200 pages d’annuaires d’entreprises. Son idée de départ : tout copier-coller à la main dans un tableur. Je lui ai suggéré plutôt de demander un scraper Python à ChatGPT. Vingt minutes après, il avait son script. Dix minutes de plus, et je recevais ce message : « Ça a tourné sur les cinq premières pages, et puis plus rien. »

Cette scène-là, je la croise bien plus souvent qu’on ne l’imagine. ChatGPT excelle vraiment pour écrire du code de scraping — jusqu’au point de rupture. Le souci, c’est que la plupart des tutoriels en ligne s’arrêtent au « regardez, ça marche sur ce petit site de démo » et vous laissent seul face à la première vraie page truffée de JavaScript, de protections anti-bot ou de pagination. Dans ce guide, je vous montre à quoi ressemble vraiment le web scraping avec ChatGPT sur le terrain : le workflow de bout en bout, cinq modèles de prompts réutilisables (pas un seul exemple isolé), un état des lieux franc de ce qui casse et des solutions quand ça arrive — y compris des alternatives sans code comme Thunderbit qui dispensent d’écrire la moindre ligne.

Qu’est-ce que le web scraping avec ChatGPT ?

Le « web scraping avec ChatGPT » consiste à se servir de ChatGPT pour extraire des données depuis des sites web. Mais attention à un détail capital, souvent oublié : ChatGPT ne scrape pas les sites lui-même. Il ne peut ni ouvrir une URL, ni télécharger du HTML, ni cliquer d’une page à l’autre. Ce qu’il sait faire, en revanche, c’est générer le code — généralement en Python — qui s’en charge, ou analyser un HTML brut que vous collez dans la conversation pour le transformer en données structurées.

Deux grandes approches coexistent :

  1. ChatGPT comme générateur de code : vous décrivez la page et les données voulues, ChatGPT rédige un script Python (souvent avec BeautifulSoup, Selenium ou Playwright) que vous exécutez sur votre machine.
  2. ChatGPT comme analyseur de données : vous collez le HTML brut dans la conversation (ou vous le téléversez via Code Interpreter), et ChatGPT en extrait les champs utiles au format JSON ou CSV.

Dans les deux cas, c’est vous qui récupérez les pages et qui lancez l’exécution. ChatGPT, c’est le cerveau, pas les mains. Même le nouveau navigateur ChatGPT Atlas (sorti en octobre 2025), qui sait naviguer de façon conversationnelle, vous renvoie des réponses — pas un tableau CSV bien rangé avec 500 lignes de produits. C’est un assistant de navigation, pas une chaîne d’extraction de données.

Pourquoi utiliser ChatGPT pour le web scraping ? Et pour qui ?

ChatGPT a fait s’effondrer d’un coup la barrière d’entrée du web scraping. D’après le Stack Overflow Developer Survey 2025, 84 % des développeurs utilisent déjà des outils d’IA dans leur flux de travail ou comptent le faire, ChatGPT arrivant largement en tête avec 82 % de part d’usage. Mais ceux qui cherchent « web scraping avec ChatGPT » ne sont pas que des développeurs. On y trouve aussi des SDR qui montent des listes de prospects, des responsables e-commerce qui surveillent les prix de la concurrence, des analystes immobiliers qui collectent des annonces ou des équipes marketing qui agrègent du contenu.

Voici un panorama rapide des cas d’usage les plus fréquents et des profils qui en tirent parti :

Cas d’usageQui en profiteQuelles données sont extraites
Extraction de leads commerciauxSDR, ops commercialesNoms, e-mails, numéros de téléphone depuis des annuaires
Suivi des prix des concurrentsE-commerce, équipes pricingNoms de produits, prix, disponibilité, SKU
Études de marchéAnalystes, fondateursInfos d’entreprise, avis, notes, listes de fonctionnalités
Collecte de données immobilièresAgents, investisseursPrix, adresses, nombre de chambres/salles de bain, infos agent
Agrégation de contenusMarketing, équipes SEOTitres d’articles, URLs, dates de publication, auteurs

Copier des données à la main sur 100 pages, c’est facilement 3 à 5 heures de travail. Un script généré par ChatGPT abat le même volume en quelques minutes — quand il fonctionne. Et ce « quand », c’est précisément le sujet de cet article.

Gartner prévoit qu’en 2026, les développeurs hors des services informatiques officiels représenteront au moins 80 % des utilisateurs d’outils low-code. Ceux qui tapent « web scraping avec ChatGPT » sont de plus en plus des non-développeurs qui veulent accéder à la donnée sans recruter d’ingénieur. Pour eux, ChatGPT est souvent le premier réflexe — et des outils comme Thunderbit deviennent le plan B quand le script refuse de tourner.

Comment fonctionne le web scraping avec ChatGPT : guide pas à pas

Voici le workflow complet, de A à Z, en prenant pour exemple une page d’annuaire d’entreprises — pas un site jouet.

  • Niveau : intermédiaire (il faut maîtriser les bases de Python)
  • Temps nécessaire : environ 15 à 30 minutes pour un premier scraping
  • Pré-requis : navigateur Chrome, environnement Python (Python 3.10+), ChatGPT (la version gratuite suffit), et une URL cible

Étape 1 : inspecter le site et identifier les données à extraire

Ouvrez dans Chrome la page que vous voulez scraper. Faites un clic droit sur une donnée à récupérer (le nom d’une entreprise, par exemple) et choisissez Inspecter. Chrome DevTools s’ouvre et met en surbrillance l’élément HTML correspondant.

Repérez les sélecteurs CSS — du genre h2.business-name, span.phone ou a.website-link. Plus vos sélecteurs sont précis, meilleur sera le code produit par ChatGPT. Copiez ensuite un extrait représentatif du HTML (une « carte » ou une « ligne » de données) pour l’insérer dans votre prompt.

À la fin de cette étape, vous devez avoir une petite liste de noms de champs — par exemple business_name, phone, website_url — assortie de leurs sélecteurs CSS.

Étape 2 : rédiger un prompt ChatGPT détaillé

C’est ici que la plupart des tutoriels échouent : un prompt trop vague, et on croise les doigts. Un bon prompt de scraping repose sur six éléments :

  1. Langage et bibliothèque : « Écris un script Python 3.11 avec BeautifulSoup 4. »
  2. URL cible : la page exacte à scraper.
  3. Sélecteurs CSS : pour chaque champ, le sélecteur repéré à l’étape 1.
  4. Format de sortie : CSV, JSON, ou les deux.
  5. Consignes spéciales : encodage, gestion des erreurs, délais.
  6. Extrait HTML : collez 20 à 40 lignes du HTML réel de la page pour donner la structure à ChatGPT.

Voici un exemple de prompt annoté :

Vous êtes un ingénieur Python senior. Écrivez un scraper web en Python 3.11 avec BeautifulSoup 4.

URL cible : https://example.com/businesses
Objectif : extraire toutes les cartes d’entreprises de la page et retourner une ligne par entreprise.

Champs nécessaires (sélecteurs CSS entre parenthèses) :
- business_name (h2.biz-name)
- phone (span.phone-number)
- website_url (a.biz-link, href)
- rating (div.stars[data-rating])

Sortie : enregistrer dans businesses.csv avec encodage UTF-8 et une ligne d’en-tête.

Exigences :
- Utiliser requests avec un User-Agent réaliste
- Gérer proprement les champs manquants (None, pas d’erreur)
- Afficher le nombre d’entreprises extraites à la fin
- Ajouter une pause d’une seconde entre les requêtes si vous bouclez

Voici un extrait HTML représentatif de la page (une carte d’entreprise) :
[COLLEZ ICI 20 À 40 LIGNES DU VRAI HTML]

Astuce : c’est l’extrait HTML qui fait le plus grimper la précision. ChatGPT ne pouvant pas ouvrir l’URL, ce morceau de code reste sa seule source de vérité.

Étape 3 : relire et tester le code généré

Ne lancez pas le code de ChatGPT à l’aveugle. Lisez-le d’abord. Vérifiez notamment :

  • Sélecteurs inventés : ChatGPT imagine parfois des classes CSS qui n’existent pas sur la page.
  • Librairies manquantes : assurez-vous que pip install requests beautifulsoup4 (ou playwright, etc.) est bien prévu.
  • Valeurs codées en dur : contrôlez l’URL, les noms de champs et les chemins de fichiers.

Créez un environnement virtuel Python, installez les dépendances, puis exécutez le script sur un petit échantillon (une ou deux pages). Examinez le CSV obtenu : les colonnes sont-elles remplies ? Voyez-vous des cases vides là où vous attendiez des données ?

Étape 4 : affiner avec des prompts de suivi

ChatGPT est redoutable en itération. Si le premier script ne récupère que la page 1, demandez :

« Le script ne scrape que la première page. Peux-tu ajouter la pagination pour extraire toutes les pages ? Le site utilise ?page=1, ?page=2, etc. Arrête-toi lorsqu’une page renvoie zéro résultat ou après 50 pages. »

Des champs manquent ? Demandez à ChatGPT d’ajouter des solutions de secours par regex pour les e-mails ou les numéros de téléphone. Le site repose lourdement sur le JS ? Réclamez une version Playwright. Chaque prompt de suivi s’appuie sur le code précédent — voyez ça comme du pair programming avec un partenaire ultra-rapide, mais parfois un brin trop sûr de lui.

5 modèles de prompts ChatGPT à copier-coller pour le web scraping

Je n’ai trouvé aucun autre guide proposant ça. J’ai rédigé, testé et affiné cinq modèles de prompts classés par scénario. Copiez-les, remplacez l’URL et l’extrait HTML, et ChatGPT vous renverra un code opérationnel dès le premier essai — ou presque.

Modèle 1 : scraper de page de liste (catalogues produits, annuaires)

Quand l’utiliser : vous êtes sur une page remplie d’éléments (produits, entreprises, offres d’emploi) et vous voulez une ligne par élément.

Vous êtes un ingénieur Python senior. Écrivez un scraper web en Python 3.11 avec BeautifulSoup 4.

URL cible : [VOTRE URL]
Objectif : extraire toutes les cartes de la page et retourner une ligne par élément.

Champs nécessaires (sélecteurs CSS entre parenthèses — issus de Inspecter) :
- [champ_1] ([sélecteur_1])
- [champ_2] ([sélecteur_2])
- [champ_3] ([sélecteur_3])
- [champ_4] ([sélecteur_4, attribut si nécessaire])

Sortie : enregistrer dans items.csv avec encodage UTF-8 et une ligne d’en-tête.

Exigences :
- Utiliser requests avec un User-Agent réaliste
- Gérer proprement les champs manquants (None, pas d’erreur)
- Afficher le nombre d’éléments extraits à la fin
- Ajouter une pause d’une seconde entre les requêtes si vous bouclez

Voici un extrait HTML représentatif de la page (une carte d’élément) :
[COLLEZ ICI 20 À 40 LIGNES DU VRAI HTML]

Résultat attendu : un fichier CSV avec une ligne par élément, et des colonnes calquées sur vos noms de champs.

Modèle 2 : scraper de page détaillée / sous-page (produit ou profil individuel)

Quand l’utiliser : vous avez une seule page riche en infos (page produit, profil de personne, annonce immobilière) et vous voulez tout réunir dans un seul enregistrement structuré.

Écris une fonction Python `scrape_detail(url)` qui prend l’URL d’une page détaillée et renvoie un dictionnaire avec ces clés :

- [champ_1]
- [champ_2]
- [champ_3]
- [champ_4]
- [champ_5]

Utilise BeautifulSoup. Gère proprement tout champ manquant (renvoie None).
Ajoute des solutions de secours par regex pour l’e-mail et le téléphone — toutes les pages ne les entourent pas avec des balises cohérentes.

Renvoie le dictionnaire, et ajoute-le aussi comme une ligne dans details.csv (crée le fichier avec l’en-tête au premier appel).

Extrait HTML de référence provenant d’une vraie page détaillée :
[COLLEZ ICI 40 À 60 LIGNES DU HTML D’UNE PAGE DÉTAILLÉE]

Résultat attendu : un dictionnaire par page et un fichier CSV qui s’enrichit d’une ligne à chaque page détaillée.

Modèle 3 : scraper de page dynamique / rendue par JavaScript (Playwright)

Quand l’utiliser : la page charge son contenu via JavaScript (React, Angular, etc.) — dans le code source, vous ne voyez qu’un <div id="root"> vide.

Écris un scraper web Python avec Playwright (API synchrone) pour une page rendue par JavaScript.

URL cible : [VOTRE URL]
Objectif : extraire toutes les cartes de résultats qui apparaissent après le chargement dynamique de la page.

Exigences :
- Utiliser `page.wait_for_selector('[VOTRE SÉLECTEUR DE CARTE]', timeout=15000)` pour attendre le contenu
- Faire défiler la page jusqu’en bas deux fois avec une pause d’une seconde entre chaque défilement pour déclencher le chargement paresseux des résultats
- Pour chaque carte, extraire : [champ_1], [champ_2], [champ_3], [champ_4]
- Enregistrer dans results.json sous forme de liste de dictionnaires, en UTF-8
- Lancer d’abord en headless=False (pour que je puisse observer) et ajouter une pause de 2 secondes à la fin avant la fermeture

N’utilise ni requests ni BeautifulSoup — uniquement Playwright.

Résultat attendu : un fichier JSON avec un objet par carte de résultat, tous les champs renseignés.

Modèle 4 : gestion de la pagination (scraping multi-pages)

Quand l’utiliser : vous avez déjà un scraper qui marche sur une page et vous devez le faire boucler sur l’ensemble des pages.

Prends le scraper BeautifulSoup existant ci-dessous et enveloppe-le dans une boucle de pagination qui récupère TOUTES les pages, pas seulement la page 1.

Le site utilise une pagination par paramètre d’URL : ?page=1, ?page=2, etc.
Condition d’arrêt : lorsque la page actuelle renvoie zéro élément, OU lorsque le statut de la réponse n’est pas 200, OU lorsque vous atteignez la page 100 (limite de sécurité).

Ajoute :
- Une pause polie de 1,5 seconde entre les requêtes de page
- Un try/except autour de chaque requête qui journalise l’erreur et continue
- Un message de progression toutes les 5 pages : "Page 15 → 300 éléments au total"
- Enregistrement final dans items_all.csv

Scraper existant :
[COLLEZ ICI VOTRE SCRAPER ACTUEL POUR UNE SEULE PAGE]

Résultat attendu : un seul CSV regroupant tous les éléments de toutes les pages, plus une sortie console qui affiche la progression.

Modèle 5 : nettoyage et structuration des données (approche « collez le HTML »)

Quand l’utiliser : vous disposez déjà de HTML brut (issu de curl, de votre navigateur, d’un fichier) et vous voulez juste que ChatGPT l’analyse pour en tirer des données propres et structurées — sans code.

Je vais coller du HTML brut provenant d’une page produit. Vous n’avez pas besoin d’écrire de code — renvoyez simplement les données extraites sous forme d’objet JSON correspondant à ce schéma :

{
  "name": string,
  "brand": string,
  "price": number,
  "currency": string (ISO 4217),
  "availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
  "rating": number (0-5) ou null,
  "review_count": integer ou null,
  "description": string (500 caractères max),
  "key_specs": [{"name": string, "value": string}]
}

Utilisez null pour toute information que vous ne trouvez pas vraiment — n’inventez rien.
Renvoyez UNIQUEMENT l’objet JSON, sans texte, sans bloc de code Markdown.

HTML :
[COLLEZ ICI LE HTML COMPLET DE LA PAGE]

Résultat attendu : un seul objet JSON, prêt à atterrir dans un tableur ou une base de données.

Où le web scraping avec ChatGPT casse-t-il ? Les limites à connaître

La plupart des tutoriels font carrément l’impasse sur cette partie. J’ai débogué assez de scrapers générés par ChatGPT pour savoir exactement où ils flanchent — et le Stack Overflow Survey 2025 le confirme : seuls 3 % des développeurs font « très confiance » aux sorties de l’IA. Voici pourquoi.

Sites web dynamiques et très dépendants de JavaScript

Plus de 98,8 % des sites s’appuient sur JavaScript pour leurs fonctions côté client. React à lui seul équipe désormais 7,2 % de tous les sites — soit une hausse d’environ 67 % en une seule année. Quand vous demandez à ChatGPT de « scraper cette page », sa réponse réflexe est un script requests + BeautifulSoup. Ce script récupère le HTML brut — et sur un site React ou Angular, ce HTML brut se résume souvent à un <div id="root"> vide. Les vraies données ne se chargent qu’après l’exécution du JavaScript, ce que requests ne déclenche jamais.

ChatGPT peut produire du code Selenium ou Playwright si vous le lui demandez, mais ces scripts sont plus lents (Playwright met en moyenne 2,9 secondes par chargement de page contre moins d’une seconde pour des requêtes statiques) et imposent souvent de déboguer les conditions d’attente, les déclencheurs de scroll et des sélecteurs d’éléments que ChatGPT devine parfois de travers.

Protections anti-bot et CAPTCHAs

Cloudflare protège environ 20 % des sites web, et des services comme DataDome revendiquent une précision de détection des bots de 99,9 %. Un simple requests.get() avec un user-agent Python est, disons-le, une signature de bot qui se repère à des kilomètres. Les scripts générés par ChatGPT n’embarquent ni rotation de proxy, ni spoofing d’empreinte TLS, ni gestion des cookies, ni résolution de CAPTCHA. Sur n’importe quel site commercial doté ne serait-ce que d’une protection sommaire, le script se fait bloquer dès la première requête.

Pagination et scraping à grande échelle

La boucle de pagination par défaut de ChatGPT parcourt ?page=N ou clique sur un bouton .next. Or, dans la réalité, beaucoup de sites recourent à une pagination par curseur, à du scroll infini avec IntersectionObserver ou à des appels GraphQL. ChatGPT est incapable de générer le bon code pour ces situations si vous ne lui montrez pas l’appel réseau précis — et même là, les boucles restent fragiles. Le guide de scraping avec ChatGPT d’Oxylabs et le tutoriel 2026 de Decodo pointent tous deux la pagination comme l’endroit n°1 où leurs exemples réclament un deuxième, voire un troisième prompt.

Scraping récurrent et planifié

ChatGPT vous livre un script ponctuel. Pas de planificateur, pas de détection de changement, pas d’alerte. Vous voulez « vérifier les prix des concurrents chaque matin » ? Il faut alors apprivoiser cron, Airflow ou Lambda — rien de tout ça ne figure dans la réponse initiale de ChatGPT. Pour un utilisateur métier qui a besoin de données récurrentes, c’est une impasse.

Le problème de vitesse et de coût

Sur des sites très lourds en JS, les temps réels par page avec Selenium ou Playwright oscillent entre 3 et 10 secondes dans des conditions idéales, et grimpent à 40-60 secondes par page une fois ajoutés les retries et les attentes anti-bot — une frustration régulièrement signalée sur les forums et dans les tutoriels.

Si vous passez par l’API ChatGPT pour analyser du HTML (l’approche « coller le HTML » à grande échelle), la facture en tokens grimpe vite. À la tarification actuelle de GPT-4o (~2,50 $/million de tokens en entrée, 10 $/million en sortie), analyser 1 000 pages produit revient à environ 95 à 105 $ rien qu’en tokens. Avec GPT-4o mini, on tombe autour de 6,50 $ pour le même volume. Ajoutez le coût des proxies (3 à 10 $/Go), la maintenance du crawler local et le temps développeur, et le fameux « il suffit d’utiliser ChatGPT » commence à coûter cher.

ÉchelleCoût en tokens GPT-4o (est.)Coût en tokens GPT-4o Mini (est.)
100 pages~9,55 $~0,65 $
1 000 pages~95,50 $~6,50 $
10 000 pages~955 $~65 $

Estimations basées sur environ 50K tokens d’entrée et 2K tokens de sortie par page. Les coûts réels varient selon la taille des pages et la complexité de la sortie.

ChatGPT pour le web scraping vs. scrapers IA sans code vs. code sur mesure : cadre de décision

Aucun projet de scraping ne réclame le même outil que le voisin. Voici le cadre de décision que j’applique chez Thunderbit, après avoir testé les trois approches sur de vrais projets.

ScénarioChatGPT + PythonScraper IA sans code (ex. Thunderbit)Code sur mesure + proxies
Pages statiques simples✅ Très bien — génération rapide✅ Fonctionne, parfois surdimensionné⚠️ Trop complexe
Contenu rendu par JS / dynamique⚠️ Besoin de Selenium/Playwright — le code casse souvent✅ Gère via scraping navigateur/cloud✅ Contrôle total
Sites avec anti-bot / CAPTCHA❌ ChatGPT ne peut pas résoudre les CAPTCHAs✅ L’infrastructure cloud gère beaucoup de cas✅ Avec rotation de proxy
Pagination (100+ pages)⚠️ Boucles fragiles, besoin de débogage✅ Gestion de la pagination intégrée✅ Robuste avec de l’ingénierie
Utilisateur non-développeur❌ Connaissances Python requises✅ 2 clics, sans code❌ Nécessite de coder
Scraping récurrent / planifié❌ Relances manuelles✅ Fonction de scraping planifié✅ Avec cron/orchestration
Export vers Sheets/Airtable/Notion⚠️ Code additionnel nécessaire✅ Export natif en un clic⚠️ Code d’intégration supplémentaire

En résumé : ChatGPT pour des scripts rapides, ponctuels, et pour apprendre. Un outil sans code comme Thunderbit pour un scraping prêt pour la production, récurrent ou destiné à des non-développeurs. Du code sur mesure + des proxies pour des projets d’ingénierie à l’échelle entreprise, quand le contrôle total est indispensable.

L’alternative sans code : comment Thunderbit gère le web scraping sans écrire de code

Pour les lecteurs qui ne codent pas — ou qui ont déjà sacrifié trop de soirées à déboguer des scripts ChatGPT — une autre voie existe. Là où ChatGPT génère le code, Thunderbit l’élimine purement et simplement.

Je fais partie de l’équipe Thunderbit, autant le dire clairement. Mais je suis aussi sincèrement convaincu que c’est le chemin le plus rapide pour la majorité des utilisateurs métier. Voici à quoi ressemble le workflow.

AI Suggest Fields : détecter automatiquement la structure des données sur n’importe quelle page

Ouvrez n’importe quelle page web, cliquez sur l’extension Chrome Thunderbit, puis sur « AI Suggest Fields ». L’IA de Thunderbit lit la page telle qu’elle s’affiche — contenu chargé en JS compris — et propose les noms de colonnes ainsi que les types de données. Aucun Inspecter, aucun sélecteur CSS, aucune ingénierie de prompt. Ensuite, un clic sur « Scrape » et c’est parti.

Comparez avec la procédure ChatGPT : ouvrir DevTools, dénicher les sélecteurs, rédiger un prompt, relire le code, installer les dépendances, exécuter le script, vérifier le résultat, itérer. Thunderbit ramène tout ça à deux clics.

Scraping de sous-pages pour enrichir automatiquement les listes

Une fois une page de liste extraite, cliquez sur « Scrape Subpages ». Thunderbit visite la page détaillée de chaque ligne et ajoute des champs supplémentaires — e-mail, téléphone, bio — à votre tableau existant. Avec ChatGPT, il faudrait un script à part, une boucle, une gestion d’erreurs pour chaque sous-page, et un moyen de fusionner les données. Thunderbit règle tout ça en une seule étape.

Export partout : Google Sheets, Airtable, Notion, Excel

Thunderbit propose un export gratuit, en un clic, vers Google Sheets, Airtable, Notion et Excel — pas seulement CSV. Un script généré par ChatGPT écrit en général dans un fichier CSV ou JSON local. Pour envoyer les données vers Sheets ou Airtable, il faut des bibliothèques supplémentaires et du code d’authentification.

Cloud scraping vs. scraping dans le navigateur

Thunderbit offre deux modes. Le cloud scraping s’exécute sur les serveurs de Thunderbit, traite environ 50 pages par lot et file vite sur les sites publics. Le scraping dans le navigateur s’appuie sur votre session connectée pour les pages protégées par connexion ou à accès restreint. Avec ChatGPT, vous devriez configurer les proxies, les cookies et la gestion de session dans le code — autant de nouvelles sources potentielles de bugs.

Sous le capot, Thunderbit mobilise plusieurs modèles d’IA (dont ChatGPT, Gemini, Claude et d’autres) pour lire visuellement les pages et déterminer quoi extraire. Autrement dit, Thunderbit utilise déjà ChatGPT — plus trois autres modèles de pointe — et prend en charge à votre place la récupération, le rendu, les protections anti-bot, la pagination et l’export.

Cas d’usage concrets : ventes, e-commerce et immobilier

La plupart des tutoriels de scraping avec ChatGPT se rabattent sur « Books to Scrape » ou un autre site de démo. Voici à quoi ressemble un vrai scraping métier — avec, côte à côte, l’approche ChatGPT et le raccourci Thunderbit.

Extraction de leads commerciaux à partir d’annuaires d’entreprises

Scénario : vous avez besoin de noms, d’e-mails et de numéros de téléphone issus d’un annuaire d’entreprises pour votre prospection.

Approche ChatGPT : servez-vous du Modèle 1 (page de liste) pour scraper l’annuaire, puis du Modèle 2 (page détaillée) pour visiter chaque profil et récupérer les coordonnées. Il faudra des solutions regex de secours pour les e-mails et les téléphones, un délai poli entre les requêtes et une passe de déduplication. Comptez 30 à 60 minutes de configuration et de débogage.

Approche Thunderbit : ouvrez l’annuaire, cliquez sur « AI Suggest Fields », scrapez la liste, puis sur « Scrape Subpages » pour récupérer les coordonnées de chaque profil. Exportez vers votre tableur prêt pour le CRM. Temps total : environ 3 minutes. Les extracteurs d’e-mails et de numéros de téléphone intégrés de Thunderbit gèrent l’analyse automatiquement.

Suivi des prix des concurrents en e-commerce

Scénario : vous voulez suivre chaque semaine les prix, disponibilités et SKU des produits concurrents.

Approche ChatGPT : générez un scraper avec le Modèle 1, ajoutez la pagination avec le Modèle 4, puis relancez-le à la main chaque semaine. Si le concurrent change sa mise en page, les sélecteurs cassent et il faut tout reprendre.

Approche Thunderbit : configurez le scraper une fois, programmez le scraping cloud de Thunderbit pour l’exécuter chaque jour ou chaque semaine, puis exportez vers Google Sheets. L’IA relit la structure de la page à chaque passage, si bien qu’un changement de mise en page ne fait pas tout tomber. Pour creuser le sujet, voyez notre guide sur le scraping des prix.

Collecte de données d’annonces immobilières

Scénario : vous avez besoin des prix, adresses, nombres de chambres/salles de bain et infos sur l’agent depuis un site d’annonces.

Approche ChatGPT : la plupart des sites immobiliers (type Zillow) sont des SPA React dotées de protections anti-bot musclées. Un script requests + BeautifulSoup renvoie une page vide. Une version Playwright finit souvent bridée au bout de quelques minutes.

Approche Thunderbit : le cloud scraping, avec détection IA des champs, encaisse le rendu JS et s’adapte aux changements de mise en page. Les portails immobiliers se refont régulièrement une beauté ; comme l’IA de Thunderbit relit la page à chaque fois, vous n’avez pas à mettre les sélecteurs à jour. Voyez notre guide de web scraping immobilier pour un pas-à-pas.

Au-delà des extractions ponctuelles : pipelines via l’API ChatGPT vs. Extract API de Thunderbit

Dès lors que vous intégrez le scraping dans un produit ou un pipeline, la question se déplace : API ChatGPT pour analyser le HTML, ou API dédiée au scraping ?

Utiliser l’API ChatGPT pour analyser du HTML

Le principe : un crawler local (requests, Playwright) récupère le HTML, puis vous l’envoyez à l’API d’OpenAI pour en extraire un JSON structuré. C’est la version industrialisée de l’astuce « collez le HTML ».

Ça fonctionne. Mais les coûts et la maintenance, eux, sont bien réels. À la tarification de GPT-4o, 1 000 pages représentent environ 95 $ en tokens. Vous prenez en charge le crawler, les proxies, l’ingénierie de prompt et le schéma de sortie. Et dès que le site évolue, votre prompt casse et il faut le réajuster.

Extract API de Thunderbit : conçue pour les données web structurées

L’Open API de Thunderbit prend le problème à l’envers. Vous définissez un schéma JSON, vous envoyez une URL en POST, et vous récupérez des données structurées. Le rendu JS et la gestion anti-bot sont intégrés d’office. Le traitement par lot accepte jusqu’à 100 URL par requête.

FonctionnalitéAPI ChatGPT + code sur mesureExtract API Thunderbit
Sortie structuréeSchéma défini manuellement dans le promptDéfinie par schéma JSON
Rendu JSÀ votre charge (Playwright, etc.)Intégré (plusieurs modes de rendu)
Anti-bot / CAPTCHAÀ votre charge (proxies, etc.)Géré automatiquement
Traitement par lotVous construisez la boucleEndpoint de lot (jusqu’à 100 URL)
MaintenanceLes prompts cassent, le code vieillitMoteur IA géré

Pour les équipes qui veulent des données web structurées sous forme de service, sans entretenir toute une chaîne de scraping, l’API Thunderbit est le plus court chemin vers la production. Consultez la tarification Thunderbit pour le coût en crédits par extraction.

Conseils pour obtenir de meilleurs résultats avec le web scraping via ChatGPT

Quelques leçons apprises à la dure.

Soyez précis dans vos prompts. Précisez systématiquement : le langage de programmation, la bibliothèque, l’URL cible, les sélecteurs CSS, le format de sortie et les consignes pour les cas limites. Un prompt flou produit du code flou.

Collez des extraits HTML, pas seulement des URLs. ChatGPT ne peut pas ouvrir les URLs. L’extrait HTML est sa seule source de vérité sur la structure de la page. Coller ne serait-ce que 20 à 40 lignes d’une carte de données fait nettement grimper la précision.

Demandez à ChatGPT de corriger et d’optimiser. Une fois un script généré, demandez : « Relis ce code pour détecter les erreurs, ajoute de la gestion d’erreurs et optimise les performances. » Il corrige étonnamment bien ses propres bourdes au second passage.

Testez toujours d’abord sur un petit échantillon. Lancez le script sur 1 à 2 pages avant de monter en charge. Repérer un sélecteur cassé dès la page 1 vous évite de le découvrir après 500 requêtes ratées.

Itérez, ne repartez pas de zéro. Si le premier script est correct à 80 %, collez le résultat et demandez à ChatGPT de corriger les 20 % restants. C’est dans cet aller-retour qu’il donne le meilleur de lui-même.

Considérations éthiques et juridiques pour le web scraping avec ChatGPT

L’aspect juridique compte, alors voici la version courte.

Selon la jurisprudence américaine en vigueur, scraper des données publiquement accessibles n’est pas un crime informatique fédéral. L’arrêt hiQ v. LinkedIn l’a posé, et la décision Meta v. Bright Data (janvier 2024) l’a confirmé : un juge a estimé que scraper des données publiques, accessibles sans connexion, sur Facebook et Instagram ne violait pas les conditions d’utilisation de Meta, dans la mesure où un visiteur sans compte n’est pas un « utilisateur » lié par ces conditions.

Cela dit, scraper des données protégées par connexion ou authentification, ou enfreindre les Conditions d’utilisation d’un site après les avoir acceptées, peut tout de même engendrer un risque juridique. Et dès que vous manipulez des données personnelles (e-mails, numéros de téléphone), les lois européennes et californiennes sur la protection des données (RGPD, CCPA) s’appliquent, quelle que soit l’origine des données.

Contrôlez toujours robots.txt et les Conditions d’utilisation avant de scraper. Respectez les limites de débit. Manipulez les données personnelles de façon responsable. Et privilégiez des outils dotés de fonctions de conformité intégrées — Thunderbit, par exemple, respecte robots.txt et applique par défaut des pratiques de collecte responsables. Pour aller plus loin, consultez notre guide juridique du web scraping.

Quand utiliser ChatGPT pour le web scraping — et quand passer à mieux

ChatGPT est un outil franchement puissant pour le web scraping : il prototype vite et vous aide à comprendre les rouages du scraping en profondeur. Pour des scripts ponctuels sur des pages statiques simples, difficile de faire mieux.

Mais pour un scraping de qualité production, récurrent ou à grande échelle — surtout sans bagage de développeur — un outil dédié comme Thunderbit est plus rapide, plus fiable et ne demande aucune maintenance. Et pour les projets d’ingénierie à l’échelle entreprise, du code sur mesure avec une infrastructure de proxies vous offre un contrôle total.

Mon récapitulatif pour décider :

  • Rapide, ponctuel, apprentissage ou prototype : ChatGPT + Python
  • Utilisateurs métier, sans code, extractions récurrentes : extension Chrome Thunderbit
  • Pipelines pour développeurs, accès API structuré : API Thunderbit
  • Échelle entreprise, contrôle total : code sur mesure + proxies + orchestration

Pour tester la voie sans code, Thunderbit propose une offre gratuite qui permet d’expérimenter à petite échelle et de juger des résultats par vous-même. Et pour voir l’outil à l’œuvre, notre chaîne YouTube regorge de démonstrations pour différents cas d’usage.

Essayez Thunderbit pour le web scraping IA Get Started Free

FAQ

ChatGPT peut-il vraiment scraper des sites web tout seul ?

Non. ChatGPT génère du code de scraping ou analyse le HTML que vous lui transmettez, mais il ne visite pas les URL, ne récupère pas les pages et n’exécute aucun script. Même ChatGPT Atlas (le navigateur intégré sorti en octobre 2025) reste un assistant de navigation conversationnel : il sait résumer une page, mais ne vous remettra pas un CSV structuré de 500 lignes.

Le web scraping avec ChatGPT est-il gratuit ?

La version gratuite de ChatGPT génère du code de scraping sans frais. En revanche, exécuter ce code suppose Python et des bibliothèques gratuites, et si vous passez par l’API OpenAI pour analyser du HTML à grande échelle, vous paierez des tokens — environ 6,50 $ pour 1 000 pages avec GPT-4o mini, ou ~95 $ avec GPT-4o. Les proxies et l’infrastructure viennent en supplément.

Quelle est la meilleure bibliothèque Python pour les scrapers générés par ChatGPT ?

Pour les pages HTML statiques, BeautifulSoup associé à la bibliothèque requests reste la solution la plus simple et la plus rapide. Pour les pages rendues en JavaScript, Playwright s’impose comme le choix moderne — plus rapide que Selenium (2,9 secondes par chargement en moyenne, contre 4,8 secondes) et doté d’une API plus propre. Selenium garde surtout son intérêt pour les projets hérités.

Puis-je utiliser ChatGPT pour scraper sans coder ?

Pas directement. ChatGPT génère du code que vous devez tout de même exécuter. Pour une vraie option sans code, des outils comme Thunderbit permettent de scraper en deux clics — sans Python, sans terminal, sans débogage. Vous obtenez des champs suggérés par l’IA, un export en un clic vers Google Sheets ou Airtable, et une prise en charge intégrée du rendu JS et des protections anti-bot.

Est-il légal de scraper des sites web avec du code généré par ChatGPT ?

Scraper des données publiques accessibles sans connexion est généralement légal au regard de la jurisprudence américaine en vigueur (hiQ v. LinkedIn, Meta v. Bright Data). En revanche, scraper du contenu restreint, enfreindre les Conditions d’utilisation d’un site ou mal manipuler des données personnelles (e-mails, numéros de téléphone) peut engendrer un risque juridique au titre du droit des contrats ou de réglementations sur la vie privée comme le RGPD et le CCPA. Contrôlez toujours robots.txt et les CGU du site avant de scraper.

En savoir plus

Shuai Guan
Shuai Guan
CEO chez Thunderbit | Expert en automatisation des données avec l’IA Shuai Guan est le CEO de Thunderbit et diplômé en ingénierie de l’Université du Michigan. Fort de près de dix ans d’expérience dans la tech et l’architecture SaaS, il se spécialise dans la transformation de modèles d’IA complexes en outils d’extraction de données pratiques et sans code. Sur ce blog, il partage des conseils sans filtre, éprouvés sur le terrain, autour du web scraping et des stratégies d’automatisation, pour vous aider à créer des workflows plus intelligents et pilotés par la donnée. Quand il n’optimise pas des flux de travail data, il met le même sens du détail au service de sa passion pour la photographie.

Extrayez une page web en la demandant simplement

Dis ce qu'il te faut en français simple. Ou mieux encore, ne dis rien du tout.

Essayer Thunderbit gratuit
Extraire des données avec l'IA
Transfère facilement les données vers Google Sheets, Airtable ou Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week