Outils IA · 6 min · 2026-09-09 · Par Équipe MaitriseLIA

ScrapeGraphAI : le scraping en langage naturel (des données structurées par prompt)

On a couvert Firecrawl, qui transforme un site en markdown propre pour ton RAG. ScrapeGraphAI attaque le problème par l’autre bout : tu décris en langage naturel ce que tu veux (« les noms de produits et leurs prix »), et un LLM te rend directement du JSON structuré. Plus de sélecteurs à maintenir. Le rêve du scraping sans code — avec de vraies limites.

ScrapeGraphAI : extraire des données structurées d’un site web en langage naturel via un LLM
Crédit photo : Unsplash

TL;DR — ScrapeGraphAI en une minute

  • Ce que c’est : ScrapeGraphAI (MIT, ~30,8k étoiles, lib Python), le scraping piloté par LLM. Tu décris en langage naturel ce que tu veux (« les titres et les prix de cette page »), il te rend du JSON structuré. Tagline : *« You Only Scrape Once ».*
  • Le différenciateur vs Firecrawl : Firecrawl transforme un site en markdown (pour nourrir un RAG) ; ScrapeGraphAI extrait des champs précis d’une page en JSON typé (pour nourrir une base, une app, un agent).
  • Comment ça tourne : des pipelines prêts à l’emploi — SmartScraper (1 page), SearchGraph (multi-sources)… — avec le modèle de ton choix : BYO-LLM (OpenAI, Gemini, Groq) ou local via Ollama.
  • Le catch : coût LLM par page, extraction non déterministe (valider le schéma), pas d’anti-bot ni de crawl site-wide, et le légal reste à toi.
  • Notre verdict : à tester — le meilleur point d’entrée pour de l’extraction structurée par prompt, bien cadré.

On a déjà couvert Firecrawl, le cheval de trait qui transforme un site en markdown propre pour ton RAG. ScrapeGraphAI attaque le même terrain — le web comme source de données pour l’IA — mais par l’autre bout. Au lieu de te rendre du texte à parser, tu lui décris ce que tu veux et il te rend directement la donnée structurée. Sur le papier : fini les sélecteurs CSS qui cassent à chaque refonte de site. En vrai : puissant, mais avec des limites qu’il faut connaître avant de brancher ça en prod.

Ce que fait ScrapeGraphAI

  • Extraction par prompt. Tu donnes une URL (ou un document local : HTML, XML, JSON, markdown) et une consigne en langage naturel. Le LLM comprend la page et te rend un JSON qui colle à ta demande. Pas de sélecteur CSS à écrire ni à maintenir.
  • Des pipelines (« graphs ») spécialisés : SmartScraper pour extraire d’une seule page, SearchGraph pour agréger plusieurs sources, plus d’autres variantes selon le besoin. C’est la logique « graphe » du nom.
  • Model-agnostic : tu branches ton LLM — OpenAI, Gemini, Groq, Azure — ou un modèle local via Ollama (données qui ne sortent pas de chez toi).
  • Deux façons de l’utiliser : la lib Python open source (MIT, tu gères l’infra et les clés), ou l’API managée (pay-as-you-go, tu paies au crédit).

Le vrai différenciateur : ScrapeGraphAI vs Firecrawl

C’est LA question à trancher, parce qu’on a l’article Firecrawl et que les deux reviennent tout le temps ensemble :

  • Firecrawl = *« transforme-moi ce site en markdown propre »*. Il crawle en profondeur (suit les liens, gère la pagination, respecte robots.txt, avale un site de 10 000 pages), et te rend du texte propre que tu parses ensuite. C’est la brique ingestion / RAG.
  • ScrapeGraphAI = *« rends-moi ces champs précis en JSON »*. Il travaille surtout page par page, mais l’extraction structurée est son cœur de métier — la sortie est typée, prête à rentrer dans une base ou une app.

La règle simple : besoin du contenu d’un site pour un LLM → Firecrawl ; besoin de données structurées précises → ScrapeGraphAI. Et beaucoup d’équipes combinent les deux : Firecrawl pour la couverture (récupérer les pages), ScrapeGraphAI pour l’extraction fine — chacun sur son point fort.

Le catch honnête

  • Coût = LLM par page. Chaque extraction est un appel LLM. En open source, ce sont tes tokens ; en API managée, c’est de l’ordre de ~0,021 $/page. Sur quelques pages, indolore. Sur des milliers, ça devient une ligne de budget à surveiller — surtout comparé à un scraper classique quasi gratuit une fois écrit.
  • Extraction non déterministe. Un LLM interprète la page : il peut rater un champ, en inventer un, ou changer de format d’une exécution à l’autre. Pour de la prod, la validation de schéma n’est pas optionnelle (Pydantic ou équivalent) — sinon tu injectes de la donnée sale sans t’en rendre compte.
  • Pas d’anti-bot, pas de crawl site-wide. Si le site se défend (Cloudflare, JS lourd), ce n’est pas le terrain de ScrapeGraphAI — c’est celui de Scrapling. Et pour crawler un domaine entier, c’est Firecrawl. ScrapeGraphAI est un extracteur, pas un moissonneur.
  • Le légal reste à toi. Scraper des CGU de sites et des données personnelles, ça t’engage (RGPD). L’outil ne te dédouane de rien : c’est à toi de vérifier ce que tu as le droit de collecter et d’exploiter.

Pour qui c’est vraiment utile

  • Tu veux extraire des données précises sans maintenir des sélecteurs qui cassent à chaque refonte : c’est exactement son intérêt (veille prix, listes de contacts publics, catalogues, annuaires).
  • Tu prototypes vite un jeu de données structuré à partir de pages hétérogènes : le prompt en langage naturel te fait gagner des heures de parsing.
  • Tu veux garder tes données chez toi : le mode Ollama local évite d’envoyer les pages à un tiers.

À l’inverse : pour avaler un site entier en markdown, reste sur Firecrawl ; pour passer un mur anti-bot, c’est Scrapling ; et pour du volume massif de scraping simple et déterministe, un scraper classique reste moins cher et plus prévisible qu’un LLM à chaque page.

Notre verdict : à tester

ScrapeGraphAI est le point d’entrée le plus élégant vers l’extraction structurée par prompt : MIT, 30,8k étoiles, model-agnostic, mode local. Pour arrêter de maintenir des sélecteurs et obtenir directement du JSON exploitable, c’est un vrai gain de temps — et il se marie bien avec Firecrawl (couverture) plutôt qu’il ne le remplace.

Les garde-fous à ne pas zapper : le coût par page (un LLM à chaque extraction, ça chiffre à l’échelle), l’extraction non déterministe (valide toujours ton schéma), l’absence d’anti-bot / crawl profond, et le cadre légal qui reste ta responsabilité. Cadré comme ça — schéma validé, budget surveillé, usage licite — il mérite un vrai test dans ta boîte à outils data.

Points de vigilance

  • Coût LLM par page : tes tokens (ou ~0,021 $/page en managé) — à budgéter dès que le volume monte.
  • Non déterministe : un LLM peut rater/inventer un champ → validation de schéma obligatoire en prod.
  • Périmètre : extracteur page par page — pas d’anti-bot (→ Scrapling) ni de crawl site-wide (→ Firecrawl).
  • Légal : CGU des sites + RGPD sur les données perso = ta responsabilité, pas celle de l’outil.

Sources

  1. ScrapeGraphAI — dépôt GitHub (ScrapeGraphAI)

À propos de l'auteur

Équipe MaitriseLIA

Experts en formation Claude Code, Anthropic API et outils d'IA professionnels. Nos contenus sont rédigés par des spécialistes qui utilisent Claude Code et les MCPs au quotidien pour automatiser leurs business.