La semaine dernière, un collègue de notre équipe commerciale m’a demandé de l’aider à récupérer les coordonnées d’environ 200 pages d’annuaires d’entreprises. Son plan ? Tout faire en copier-coller à la main dans un tableur. Je lui ai proposé d’utiliser ChatGPT pour générer un scraper Python. Vingt minutes plus tard, il avait déjà un script. Trente minutes après, il m’envoyait un DM : « Ça a marché sur les cinq premières pages, puis… plus rien. »
Ce genre de scène arrive beaucoup plus souvent qu’on ne le pense. ChatGPT est vraiment très fort pour écrire du code de scraping — jusqu’au moment où ça ne suffit plus. Et la plupart des tutoriels en ligne s’arrêtent au fameux « regardez, ça marche sur ce mini site », en vous laissant coincé dès que vous tombez sur une vraie page avec du JavaScript, des protections anti-bot ou de la pagination. Dans ce guide, je vais vous montrer à quoi ressemble vraiment le web scraping avec ChatGPT en pratique : le workflow complet, cinq modèles de prompts réutilisables (pas juste un exemple), un décryptage honnête de ce qui casse, et quoi faire quand ça arrive — y compris des alternatives sans code comme qui évitent complètement d’écrire du code.
Qu’est-ce que le web scraping avec ChatGPT ?
Le « web scraping avec ChatGPT », c’est utiliser ChatGPT pour vous aider à extraire des données depuis des sites web. Mais il y a un point essentiel que beaucoup de gens ratent : ChatGPT ne scrape pas les sites lui-même. Il ne peut pas ouvrir une URL, récupérer du HTML ni cliquer de page en page. En revanche, il peut générer le code — le plus souvent en Python — qui fait tout ça, ou analyser du HTML brut que vous collez dans la conversation et le transformer en données structurées.
Il existe deux grandes approches :
- ChatGPT comme générateur de code : vous décrivez la page et les données voulues, et ChatGPT écrit un script Python (souvent avec BeautifulSoup, Selenium ou Playwright) que vous lancez sur votre machine.
- ChatGPT comme analyseur de données : vous copiez-collez le HTML brut dans la conversation (ou vous le téléversez via Code Interpreter), et ChatGPT 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 est le cerveau, pas les mains. Même avec le nouveau navigateur ChatGPT Atlas (lancé en octobre 2025), qui peut naviguer sur le web de façon conversationnelle, il renvoie des réponses — pas des tableaux CSV structurés 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 fait tomber d’un coup la barrière d’entrée du web scraping. Selon le , des développeurs utilisent déjà des outils d’IA ou prévoient de le faire dans leur flux de travail, et ChatGPT arrive en tête avec 82 % de part d’usage. Mais les personnes qui s’intéressent au « web scraping avec ChatGPT » ne sont pas seulement des développeurs. Il y a aussi les SDR qui montent des listes de prospects, les responsables e-commerce qui surveillent les prix des concurrents, les analystes immobiliers qui récupèrent des annonces, et les équipes marketing qui agrègent du contenu.
Voici un aperçu rapide des cas d’usage les plus courants et des profils qui en profitent :
| Cas d’usage | Qui en profite | Quelles données sont extraites |
|---|---|---|
| Extraction de leads commerciaux | SDR, ops commerciales | Noms, e-mails, numéros de téléphone depuis des annuaires |
| Suivi des prix des concurrents | E-commerce, équipes pricing | Noms de produits, prix, disponibilité, SKU |
| Études de marché | Analystes, fondateurs | Infos d’entreprise, avis, notes, listes de fonctionnalités |
| Collecte de données immobilières | Agents, investisseurs | Prix, adresses, nombre de chambres/salles de bain, infos agent |
| Agrégation de contenus | Marketing, équipes SEO | Titres d’articles, URLs, dates de publication, auteurs |
Copier manuellement des données depuis 100 pages peut facilement prendre 3 à 5 heures. Un script généré par ChatGPT peut faire le même travail en quelques minutes — s’il fonctionne. Et ce « s’il » est justement le cœur de cet article.
Gartner prévoit qu’en 2026, les développeurs en dehors des services IT formels représenteront des utilisateurs d’outils low-code. Les personnes qui tapent « web scraping avec ChatGPT » sont de plus en plus des non-développeurs qui veulent accéder à la donnée sans embaucher un ingénieur. Pour eux, ChatGPT est souvent le premier réflexe — et des outils comme Thunderbit deviennent l’option choisie quand le script refuse de tourner.
Comment fonctionne le web scraping avec ChatGPT : guide pas à pas
Voici le workflow complet, de bout en bout, en prenant comme exemple une page d’annuaire d’entreprises — pas un site jouet.
- Niveau : intermédiaire (il faut être à l’aise avec 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 la page que vous voulez scraper dans Chrome. Faites un clic droit sur une donnée que vous souhaitez récupérer (par exemple, le nom d’une entreprise) puis choisissez Inspecter. Cela ouvre Chrome DevTools et met en évidence l’élément HTML.
Repérez les sélecteurs CSS — du type h2.business-name, span.phone, ou a.website-link. Plus vos sélecteurs sont précis, meilleur sera le résultat produit par ChatGPT. Copiez un extrait représentatif du HTML (une « carte » ou une « ligne » de données) pour le coller dans votre prompt.
À ce stade, vous devez avoir une petite liste de noms de champs, par exemple business_name, phone, website_url, ainsi que leurs sélecteurs CSS correspondants.
Étape 2 : rédiger un prompt ChatGPT détaillé
C’est là que la plupart des tutoriels se plantent : ils donnent un prompt trop vague et croisent les doigts. Un bon prompt de scraping comporte six éléments :
- Langage et bibliothèque : « Écris un script Python 3.11 avec BeautifulSoup 4. »
- URL cible : la page exacte à scraper.
- Sélecteurs CSS : pour chaque champ, le sélecteur trouvé à l’étape 1.
- Format de sortie : CSV, JSON, ou les deux.
- Consignes spéciales : encodage, gestion des erreurs, délais.
- Extrait HTML : collez 20 à 40 lignes du HTML réel de la page pour que ChatGPT voie la structure.
Voici un exemple de prompt annoté :
1Vous êtes un ingénieur Python senior. Écrivez un scraper web en Python 3.11 avec BeautifulSoup 4.
2URL cible : https://example.com/businesses
3Objectif : extraire toutes les cartes d’entreprises de la page et retourner une ligne par entreprise.
4Champs nécessaires (sélecteurs CSS entre parenthèses) :
5- business_name (h2.biz-name)
6- phone (span.phone-number)
7- website_url (a.biz-link, href)
8- rating (div.stars[data-rating])
9Sortie : enregistrer dans businesses.csv avec encodage UTF-8 et une ligne d’en-tête.
10Exigences :
11- Utiliser requests avec un User-Agent réaliste
12- Gérer proprement les champs manquants (None, pas d’erreur)
13- Afficher le nombre d’entreprises extraites à la fin
14- Ajouter une pause d’une seconde entre les requêtes si vous bouclez
15Voici un extrait HTML représentatif de la page (une carte d’entreprise) :
16[COLLEZ ICI 20 À 40 LIGNES DU VRAI HTML]
Astuce : ajouter l’extrait HTML est ce qui améliore le plus la précision. ChatGPT ne peut pas ouvrir l’URL ; ce morceau de code est donc sa seule source de vérité.
Étape 3 : relire et tester le code généré
Ne lancez pas le code de ChatGPT les yeux fermés. Lisez-le d’abord. Vérifiez :
- 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(ouplaywright, etc.) est bien prévu. - Valeurs codées en dur : vérifiez que l’URL, les noms de champs et les chemins de fichiers sont corrects.
Créez un environnement virtuel Python, installez les dépendances, puis lancez le script sur un petit échantillon (une ou deux pages). Vérifiez le CSV obtenu : les colonnes sont-elles remplies ? Y a-t-il des cases vides là où vous attendiez des données ?
Étape 4 : affiner avec des prompts de suivi
ChatGPT est très bon dans l’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. »
Si 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. Si le site dépend fortement du JS, demandez une version Playwright. Chaque prompt de suivi s’appuie sur le code précédent — voyez ça comme du pair programming avec un partenaire très rapide, mais parfois un peu trop sûr de lui.
5 modèles de prompts ChatGPT à copier-coller pour le web scraping
Je n’ai trouvé aucun autre guide qui propose ça. J’ai rédigé, testé et affiné cinq modèles de prompts organisés par scénario. Copiez-les, remplacez l’URL et l’extrait HTML, et ChatGPT vous renverra un code qui fonctionne du premier coup — ou presque.
Modèle 1 : scraper de page de liste (catalogues produits, annuaires)
Quand l’utiliser : vous êtes sur une page avec plein d’éléments (produits, entreprises, offres d’emploi) et vous voulez une ligne par élément.
1Vous êtes un ingénieur Python senior. Écrivez un scraper web en Python 3.11 avec BeautifulSoup 4.
2URL cible : [VOTRE URL]
3Objectif : extraire toutes les cartes de la page et retourner une ligne par élément.
4Champs nécessaires (sélecteurs CSS entre parenthèses — issus de Inspecter) :
5- [champ_1] ([sélecteur_1])
6- [champ_2] ([sélecteur_2])
7- [champ_3] ([sélecteur_3])
8- [champ_4] ([sélecteur_4, attribut si nécessaire])
9Sortie : enregistrer dans items.csv avec encodage UTF-8 et une ligne d’en-tête.
10Exigences :
11- Utiliser requests avec un User-Agent réaliste
12- Gérer proprement les champs manquants (None, pas d’erreur)
13- Afficher le nombre d’éléments extraits à la fin
14- Ajouter une pause d’une seconde entre les requêtes si vous bouclez
15Voici un extrait HTML représentatif de la page (une carte d’élément) :
16[COLLEZ ICI 20 À 40 LIGNES DU VRAI HTML]
Résultat attendu : un fichier CSV avec une ligne par élément, et des colonnes correspondant à 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 extraire dans un seul enregistrement structuré.
1É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 :
2- [champ_1]
3- [champ_2]
4- [champ_3]
5- [champ_4]
6- [champ_5]
7Utilise BeautifulSoup. Gère proprement tout champ manquant (renvoie None).
8Ajoute 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.
9Renvoie le dictionnaire, et ajoute-le aussi comme une ligne dans details.csv (crée le fichier avec l’en-tête au premier appel).
10Extrait HTML de référence provenant d’une vraie page détaillée :
11[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 par 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 HTML source, vous voyez un <div id="root"> vide.
1Écris un scraper web Python avec Playwright (API synchrone) pour une page rendue par JavaScript.
2URL cible : [VOTRE URL]
3Objectif : extraire toutes les cartes de résultats qui apparaissent après le chargement dynamique de la page.
4Exigences :
5- Utiliser `page.wait_for_selector('[VOTRE SÉLECTEUR DE CARTE]', timeout=15000)` pour attendre le contenu
6- 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
7- Pour chaque carte, extraire : [champ_1], [champ_2], [champ_3], [champ_4]
8- Enregistrer dans results.json sous forme de liste de dictionnaires, en UTF-8
9- Lancer d’abord en headless=False (pour que je puisse observer) et ajouter une pause de 2 secondes à la fin avant la fermeture
10N’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 fonctionne sur une seule page et vous devez le faire boucler sur toutes les pages.
1Prends 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.
2Le site utilise une pagination par paramètre d’URL : ?page=1, ?page=2, etc.
3Condition 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é).
4Ajoute :
5- Une pause polie de 1,5 seconde entre les requêtes de page
6- Un try/except autour de chaque requête qui journalise l’erreur et continue
7- Un message de progression toutes les 5 pages : "Page 15 → 300 éléments au total"
8- Enregistrement final dans items_all.csv
9Scraper existant :
10[COLLEZ ICI VOTRE SCRAPER ACTUEL POUR UNE SEULE PAGE]
Résultat attendu : un seul CSV avec tous les éléments de toutes les pages, ainsi qu’une sortie console montrant la progression.
Modèle 5 : nettoyage et structuration des données (approche « collez le HTML »)
Quand l’utiliser : vous avez déjà du HTML brut (depuis curl, depuis votre navigateur, depuis un fichier) et vous voulez simplement que ChatGPT l’analyse pour en faire des données propres et structurées — sans code.
1Je 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 :
2{
3 "name": string,
4 "brand": string,
5 "price": number,
6 "currency": string (ISO 4217),
7 "availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
8 "rating": number (0-5) ou null,
9 "review_count": integer ou null,
10 "description": string (500 caractères max),
11 "key_specs": [{"name": string, "value": string}]
12}
13Utilisez null pour toute information que vous ne trouvez pas vraiment — n’inventez rien.
14Renvoyez UNIQUEMENT l’objet JSON, sans texte, sans bloc de code Markdown.
15HTML :
16[COLLEZ ICI LE HTML COMPLET DE LA PAGE]
Résultat attendu : un seul objet JSON, prêt à être importé 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 passent complètement cette partie sous silence. J’ai passé assez de temps à déboguer des scrapers générés par ChatGPT pour savoir exactement où ils échouent — et le confirme que seulement 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 des sites utilisent JavaScript pour les fonctionnalités côté client. React, à lui seul, fonctionne désormais sur 7,2 % de tous les sites — soit une en une seule année. Quand vous demandez à ChatGPT de « scraper cette page », sa réponse par défaut est un script requests + BeautifulSoup. Ce script récupère le HTML brut — et sur un site React ou Angular, ce HTML brut n’est souvent qu’un <div id="root"> vide. Les vraies données se chargent après l’exécution du JavaScript, ce que requests ne fait jamais.
ChatGPT peut générer du code Selenium ou Playwright si vous le demandez, mais ces scripts sont plus lents (Playwright prend en moyenne contre moins d’une seconde pour des requêtes statiques) et demandent souvent de déboguer les conditions d’attente, les déclencheurs de scroll et les sélecteurs d’éléments que ChatGPT devine parfois mal.
Protections anti-bot et CAPTCHAs
Cloudflare protège environ , et des services comme DataDome revendiquent une . Un simple requests.get() avec un user-agent Python est, soyons francs, une signature de bot très facile à repérer. Les scripts générés par ChatGPT n’incluent ni rotation de proxy, ni spoofing de fingerprint TLS, ni gestion des cookies, ni résolution de CAPTCHA. Sur n’importe quel site commercial doté d’une protection même basique, 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. En réalité, beaucoup de sites utilisent une pagination par curseur, du scroll infini avec IntersectionObserver ou des appels GraphQL. ChatGPT ne peut pas générer le bon code pour ces cas-là si vous ne lui montrez pas l’appel réseau exact — et même dans ce cas, les boucles restent fragiles. Le et le signalent tous les deux que la pagination est l’endroit n°1 où leurs exemples demandent un deuxième ou un troisième prompt.
Scraping récurrent et planifié
ChatGPT vous donne un script ponctuel. Pas de planificateur, pas de détection de changement, pas d’alerte. Si vous voulez « vérifier les prix des concurrents chaque matin », il faut apprendre cron, Airflow ou Lambda — rien de tout cela n’est couvert dans la réponse initiale de ChatGPT. Pour les utilisateurs métier qui ont besoin de données récurrentes, c’est un cul-de-sac.
Le problème de vitesse et de coût
Pour les sites très lourds en JS, les temps réels par page avec Selenium ou Playwright se situent entre 3 et 10 secondes par page dans des conditions idéales, et 40 à 60 secondes par page avec des retries et des attentes anti-bot — une frustration dans les forums et les tutoriels.
Si vous utilisez l’API ChatGPT pour analyser du HTML (l’approche « coller le HTML » à grande échelle), les coûts en tokens montent vite. Avec la tarification actuelle de GPT-4o (~2,50 $/million de tokens en entrée, 10 $/million en sortie), l’analyse de 1 000 pages produit coûte environ 95 à 105 $ rien qu’en tokens. Avec GPT-4o mini, on est autour de 6,50 $ pour le même volume. Ajoutez les coûts des proxies (3 à 10 $/GB), la maintenance du crawler local et le temps développeur, et l’approche « utilisez simplement ChatGPT » commence à paraître chère.
| Échelle | Coû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
Tous les projets de scraping n’ont pas besoin du même outil. Voici le cadre de décision que j’utilise chez Thunderbit après avoir testé les trois approches sur de vrais projets.
| Scénario | ChatGPT + Python | Scraper 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 clair : utilisez ChatGPT pour des scripts rapides ponctuels et pour apprendre. Utilisez un outil sans code comme Thunderbit pour un scraping prêt pour la production, récurrent ou destiné à des non-développeurs. Utilisez du code sur mesure + des proxies pour des projets d’ingénierie à l’échelle entreprise, quand vous avez besoin d’un contrôle total.
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à perdu trop de soirées à déboguer des scripts ChatGPT — il existe une autre voie. ChatGPT génère le code. le supprime complètement.
Je travaille sur l’équipe Thunderbit, donc je préfère être transparent là-dessus. Mais je pense aussi sincèrement que c’est la voie la plus rapide pour la plupart 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’, puis cliquez sur « AI Suggest Fields ». L’IA de Thunderbit lit la page affichée — y compris le contenu chargé en JS — et propose les noms de colonnes ainsi que les types de données. Pas besoin d’Inspecter, pas de sélecteurs CSS, pas d’ingénierie de prompt. Ensuite, cliquez sur « Scrape ».
Comparez ça à l’approche ChatGPT : ouvrir DevTools, trouver les sélecteurs, écrire un prompt, relire le code, installer les dépendances, exécuter le script, vérifier le résultat, puis itérer. Thunderbit condense tout cela en deux clics.
Scraping de sous-pages pour enrichir automatiquement les listes
Après avoir extrait une page de liste, cliquez sur « Scrape Subpages ». Thunderbit visite la page détaillée de chaque ligne et ajoute des champs supplémentaires — comme l’e-mail, le téléphone ou la bio — à votre tableau existant. Avec ChatGPT, il vous faudrait un script séparé, une boucle, une gestion des erreurs pour chaque sous-page, et un moyen de fusionner les données. Thunderbit gère 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 généralement dans un fichier CSV ou JSON local. Envoyer les données vers Sheets ou Airtable demande des bibliothèques supplémentaires et du code d’authentification.
Cloud scraping vs. scraping dans le navigateur
Thunderbit propose deux modes. Le cloud scraping tourne sur les serveurs de Thunderbit, traite environ 50 pages par lot et va vite sur les sites publics. Le scraping dans le navigateur utilise 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 — chacun devenant une nouvelle source potentielle de bugs.
Sous le capot, Thunderbit s’appuie sur plusieurs modèles d’IA (dont ChatGPT, Gemini, Claude et d’autres) pour lire visuellement les pages et détecter ce qu’il faut extraire. Donc, d’une certaine manière, Thunderbit utilise déjà ChatGPT — plus trois autres modèles de pointe — et gère pour vous 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 utilisent « Books to Scrape » ou un autre site jouet. Voici à quoi ressemble un vrai scraping métier — avec à la fois l’approche ChatGPT et le raccourci Thunderbit.
Extraction de leads commerciaux à partir d’annuaires d’entreprises
Scénario : vous avez besoin de noms, e-mails et numéros de téléphone depuis un annuaire d’entreprises pour faire de la prospection.
Approche ChatGPT : utilisez le Modèle 1 (page de liste) pour scraper l’annuaire, puis le 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 cliquez 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 intégrés de Thunderbit gèrent automatiquement l’analyse.
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 lancez-le manuellement chaque semaine. Si le concurrent change la mise en page, les sélecteurs cassent et il faut recommencer.
Approche Thunderbit : configurez le scraper une fois, utilisez le scraping cloud planifié 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 exécution, donc les changements de mise en page ne cassent pas tout. Pour aller plus loin, consultez notre .
Collecte de données d’annonces immobilières
Scénario : vous avez besoin des prix, adresses, nombre de chambres/salles de bain et informations sur l’agent depuis un site d’annonces.
Approche ChatGPT : la plupart des sites immobiliers (type Zillow) sont des SPA React avec des protections anti-bot agressives. 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 gère le rendu JS et s’adapte aux changements de mise en page. Les portails immobiliers sont souvent refondus ; l’IA de Thunderbit relit la page à chaque fois, donc vous n’avez pas besoin de mettre à jour les sélecteurs. Voir notre pour un pas-à-pas.
Au-delà des extractions ponctuelles : pipelines via l’API ChatGPT vs. Extract API de Thunderbit
Si vous intégrez le scraping dans un produit ou un pipeline, la question change : API ChatGPT pour analyser le HTML, ou API dédiée au scraping ?
Utiliser l’API ChatGPT pour analyser du HTML
L’idée : utiliser un crawler local (requests, Playwright) pour récupérer le HTML, puis l’envoyer à l’API d’OpenAI afin d’extraire un JSON structuré. C’est la version industrialisée de l’astuce « collez le HTML ».
Ça marche. Mais les coûts et la maintenance sont bien réels. Avec la tarification de GPT-4o, 1 000 pages coûtent environ 95 $ en tokens. Vous gérez le crawler, les proxies, l’ingénierie de prompt et le schéma de sortie. Quand le site change, votre prompt casse et il faut le réajuster.
Extract API de Thunderbit : conçue pour les données web structurées
L’ de Thunderbit propose une approche différente. 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. Le traitement par lot prend en charge jusqu’à 100 URL par requête.
| Fonctionnalité | API ChatGPT + code sur mesure | Extract API Thunderbit |
|---|---|---|
| Sortie structurée | Schéma défini manuellement dans le prompt | Dé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 lot | Vous construisez la boucle | Endpoint de lot (jusqu’à 100 URL) |
| Maintenance | Les prompts cassent, le code vieillit | Moteur IA géré |
Pour les équipes qui veulent des données web structurées comme service, sans maintenir toute une chaîne de scraping, l’API Thunderbit est la voie la plus courte vers la production. Consultez la 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. Incluez toujours : 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. Des prompts vagues produisent du code vague.
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é pour la structure de la page. Coller même 20 à 40 lignes d’une carte de données améliore fortement la précision.
Demandez à ChatGPT de corriger et d’optimiser. Après la génération d’un script, 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 fautes lors d’un second passage.
Testez toujours d’abord sur un petit échantillon. Lancez le script sur 1 à 2 pages avant de passer à l’échelle. Repérer un sélecteur cassé sur la page 1 vous évite de découvrir le problème 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 l’échange itératif qu’il est le plus fort.
Considérations éthiques et juridiques pour le web scraping avec ChatGPT
L’aspect juridique compte, donc voici la version courte.
Selon la jurisprudence américaine actuelle, le scraping de données publiquement accessibles n’est pas un crime informatique fédéral. L’arrêt l’a établi, et la décision (janvier 2024) l’a renforcé : un juge a estimé que le scraping de données publiques, accessibles sans connexion, sur Facebook et Instagram ne violait pas les conditions d’utilisation de Meta, car 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 violer les Conditions d’utilisation d’un site après les avoir acceptées, peut quand même créer un risque juridique. Et dès que vous traitez 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, peu importe la source des données.
Vérifiez toujours robots.txt et les Conditions d’utilisation avant de scraper. Respectez les limites de débit. Traitez les données personnelles avec responsabilité. Et utilisez 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 .
Quand utiliser ChatGPT pour le web scraping — et quand passer à mieux
ChatGPT est un outil vraiment puissant pour le web scraping : il génère vite des prototypes et vous aide à comprendre comment le scraping fonctionne en profondeur. Pour des scripts ponctuels sur des pages statiques simples, c’est difficile de faire mieux.
Mais pour un scraping de qualité production, récurrent ou à grande échelle — surtout si vous n’êtes pas 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 donne un contrôle total.
Mon résumé de décision :
- Rapide, ponctuel, apprentissage ou prototype : ChatGPT + Python
- Utilisateurs métier, sans code, extractions récurrentes :
- Pipelines pour développeurs, accès API structuré :
- Échelle entreprise, contrôle total : code sur mesure + proxies + orchestration
Si vous voulez essayer la voie sans code, Thunderbit propose une offre gratuite pour tester à petite échelle et voir les résultats par vous-même. Et si vous voulez voir l’outil en action, notre propose des démonstrations pour différents cas d’usage.
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 fournissez, mais il ne visite pas les URL, ne récupère pas les pages et n’exécute pas de scripts. Même ChatGPT Atlas (le navigateur intégré lancé en octobre 2025) reste un assistant de navigation conversationnel : il peut résumer une page, mais il ne vous remettra pas un CSV structuré de 500 lignes.
Le web scraping avec ChatGPT est-il gratuit ?
La version gratuite de ChatGPT peut générer du code de scraping sans frais. En revanche, l’exécution du code nécessite Python et des bibliothèques gratuites, et si vous utilisez 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 sont en plus.
Quelle est la meilleure bibliothèque Python pour les scrapers générés par ChatGPT ?
Pour les pages HTML statiques, BeautifulSoup avec la bibliothèque requests est la solution la plus simple et la plus rapide. Pour les pages rendues en JavaScript, Playwright est le choix moderne — il est plus rapide que Selenium (en moyenne 2,9 secondes par chargement contre 4,8 secondes) et offre une API plus propre. Selenium reste surtout utile 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 quand même exécuter. Si vous voulez une vraie option sans code, des outils comme vous 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 gestion 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 ?
Le scraping de données publiques accessibles sans connexion est généralement légal selon la jurisprudence américaine actuelle (hiQ v. LinkedIn, Meta v. Bright Data). En revanche, scraper du contenu restreint, violer les Conditions d’utilisation d’un site ou mal gérer des données personnelles (e-mails, numéros de téléphone) peut créer un risque juridique au titre du droit des contrats ou de réglementations sur la vie privée comme le RGPD et le CCPA. Vérifiez toujours robots.txt et les CGU du site avant de scraper.
En savoir plus