Cours
Firecrawl est une nouvelle génération de robot d’exploration conçu pour les workflows IA. Il permet aux développeurs d’aspirer des pages, des sites entiers, voire le web. Idéal pour simplifier le scraping traditionnel, il gère JavaScript, convertit automatiquement en markdown et s’intègre aux frameworks LLM les plus répandus.
Dans cet article, je présente non seulement les fonctions clés de Firecrawl, mais aussi des conseils avancés pratiques, des intégrations écosystème et des applications concrètes, afin que vous puissiez vous exercer rapidement.
Qu’est-ce que Firecrawl ?
Firecrawl est un robot d’exploration web piloté par l’IA, développé par Mendable.ai. Il s’agit d’un service d’API qui explore les sites et les convertit en données propres et prêtes pour les LLM, comme du markdown, du JSON, etc.
Cette approche pilotée par l’IA comprend le contexte des pages et en extrait le contenu principal de manière intelligible, à l’inverse d’outils traditionnels comme BeautifulSoup ou Puppeteer, qui explorent à l’aveugle et renvoient souvent des données bruitées. Il peut transformer des sites entiers en markdown propre ou en données structurées, idéales pour les tâches LLM.
Firecrawl propose 3 modes principaux, que je détaille ci-dessous. En général, on utilise le mode scrape pour une URL unique, le mode crawl pour un site complet, et le mode map pour la découverte d’URLs.
Fonctionnalités clés de Firecrawl
Firecrawl se distingue par l’absence de sitemap requis grâce à une navigation intelligente, la prise en charge de JavaScript lourd et de contenus dynamiques, des sorties en markdown propre, HTML, JSON, captures d’écran, etc., ce qui lui confère une grande flexibilité. Il intègre un proxy, des mécanismes anti-bot et de cache, gère le traitement par lots et le parallélisme pour les gros volumes, et est hautement personnalisable : exclusion de balises, en-têtes personnalisés, profondeur d’exploration, et plus encore. Il s’intègre nativement aux frameworks LLM comme LangChain, LlamaIndex et CrewAI. Enfin, il est adapté aux exigences entreprise : limites de débit, contrôles de concurrence et fiabilité configurables.
Comment installer Firecrawl
L’avantage de Firecrawl, c’est sa mise en route très rapide. Voici les étapes principales pour l’installer sur votre système :
Configuration de la clé d’API
- Inscrivez-vous sur firecrawl.dev pour obtenir une clé d’API.
- Installez la bibliothèque cliente Python :
pip install firecrawl
Et si vous utilisez LangChain, exécutez
pip install firecrawl-py
- Stockez la clé d’API en toute sécurité via des variables d’environnement :
import os
from firecrawl import FirecrawlApp
# Définissez votre clé d’API Firecrawl comme variable d’environnement pour plus de sécurité
api_key = os.getenv('FIRECRAWL_API_KEY')
# Créez une instance de FirecrawlApp avec votre clé d’API
app = FirecrawlApp(api_key=api_key)
Exemple de scraping basique
Réalisez un premier scraping avec la méthode .scrape_url() :
response = app.scrape_url(url='example.com', formats=['markdown'])
print(response)
Ce code récupère le contenu principal de la page firecrawl.dev au format markdown.
Comprendre les modes et endpoints de Firecrawl
Firecrawl propose trois modes qui définissent l’étendue de votre exploration. Voici un tour d’horizon de chacun.
Mode scrape
Le mode scrape cible des URLs individuelles. Idéal pour extraire des fiches produit ou des articles. Le paramètre llm_extract active une extraction basée sur un schéma. Définissez le schéma JSON attendu, initialisez votre configuration, puis lancez le scraping :
from firecrawl import JsonConfig
from pydantic import BaseModel
# Définissez la structure attendue pour le schéma d’extraction JSON
class ExtractSchema(BaseModel):
company_mission: str
supports_sso: bool
is_open_source: bool
is_in_yc: bool
# Configurez l’extraction JSON en mode LLM
json_config = JsonConfig(
extractionSchema=ExtractSchema.model_json_schema(),
mode="llm-extraction",
pageOptions={"onlyMainContent": True}
)
# Scrapez l’URL, extrayez les données et formatez-les en JSON
llm_extraction_result = app.scrape_url(
'https://firecrawl.dev',
formats=["json"],
json_options=json_config
)
print(llm_extraction_result)
Voici un autre exemple de scraping d’une URL unique, cette fois avec une extraction basée sur des sélecteurs :
# Obtenir une capture d’écran du haut de la page d’aperçu
scrape_result = app.scrape_url('firecrawl.dev',
formats=['markdown', 'html', "screenshot"],
actions=[
{"type": "wait", "milliseconds": 3000},
{"type": "click", "selector": "h1"},
{"type": "wait", "milliseconds": 3000},
{"type": "scrape"},
{"type": "screenshot"}
],
)
print(scrape_result)
Ce script ouvre d’abord le site, attend 3000 millisecondes, clique sur le premier sélecteur h1, attend à nouveau, puis effectue le scraping et enregistre une capture d’écran de la page courante. En cas de timeout, augmentez les temps d’attente et le paramètre de délai.
Mode crawl
Le mode crawl permet d’explorer un site complet, y compris toutes les sous-pages accessibles, sans sitemap. Il renvoie un ID de job pour le suivi, prend en charge la récupération de métadonnées (en-têtes, horodatages), le contrôle du débit pour réguler la vitesse de frappe, et une profondeur récursive pour définir le nombre de niveaux de liens à suivre. Les étapes d’un crawler sont les suivantes :
- Le crawler ouvre l’URL fournie
- Il la scrute (scrape)
- Tous les hyperliens vers les sous-pages sont analysés et reçoivent des crawlers dédiés
- Les étapes sont répétées jusqu’à atteindre la limite définie.
Exemple de crawler avec Python requests :
import requests
url = "https://api.firecrawl.dev/v1/crawl"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
data = {
"url": "https://docs.firecrawl.dev", # site à explorer
"limit": 100, # nombre maximal d’éléments
"scrapeOptions": {
"formats": ["markdown", "html"] # formats de sortie
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())
Ce code demande à Firecrawl de récupérer jusqu’à 100 pages depuis https://docs.firecrawl.dev, de renvoyer chaque page en Markdown et HTML, puis d’afficher le résultat.
Pour aller plus loin sur les APIs, consultez notre cours Introduction to APIs in Python, notre code-along Working with APIs in Python et notre tutoriel Mastering Python APIs: A Comprehensive Guide to Building and Using APIs in Python.
Mode map
Le mode Map permet de saisir un site et de récupérer instantanément toutes ses URLs, très rapidement. C’est l’objet de /map : transformer une URL unique en sitemap complet, idéal pour proposer à l’utilisateur final de sélectionner les liens à aspirer, lister rapidement toutes les URLs, cibler des pages sur un thème via le paramètre de recherche, ou restreindre l’exploration à certaines pages.
Point d’attention : cet endpoint privilégie la vitesse et peut ne pas capturer chaque lien.
# Cartographier un site :
map_result = app.map_url('https://firecrawl.dev')
print(map_result)
Ce code demande à Firecrawl de découvrir tous les liens de la page https://firecrawl.dev et de vous les lister.
Cas d’usage réels de Firecrawl
Firecrawl est un outil polyvalent pour de nombreux usages, comme nous l’avons vu, ce qui le rend très utile sur le terrain. Il excelle pour aspirer des job boards ou des sites d’actualité afin de compiler des annonces ou articles récents pour l’analyse, ou pour entraîner un modèle de prévision. Vous pouvez également réaliser des analyses de sentiment à partir d’avis collectés (e-commerce, sites d’avis comme Amazon) pour éclairer vos décisions.
On peut aller plus loin avec le suivi des prix : surveiller les tarifs produits sur plusieurs plateformes pour détecter des tendances ou déclencher des alertes de baisse. Par ailleurs, Firecrawl permet d’extraire de la documentation technique pour entraîner ou alimenter des agents IA, enrichir leur base de connaissances, ou ingérer des données dans des pipelines multi-agents, à l’instar de CAMEL-AI.
Il peut aussi fournir des données web structurées à des systèmes de RAG (retrieval-augmented generation) pour améliorer les performances des modèles et réduire les hallucinations.
Techniques avancées et bonnes pratiques
Pour exploiter pleinement Firecrawl, voici quelques techniques avancées et bonnes pratiques :
-
Extrayez des données structurées pour votre LLM avec l’endpoint
/extractafin de renvoyer des données selon un prompt ou un schéma : les LLM gèrent mieux ces formats que le HTML brut. -
Gérez les erreurs par des relances : implémentez des retry avec backoff exponentiel pour absorber les erreurs API transitoires.
-
Optimisez les performances : utilisez l’exploration asynchrone de Firecrawl pour lancer de grands crawls sans bloquer votre application ; idéal pour les apps et services web.
-
Filtrez les crawls avec des paramètres comme
max_depthouexcludeafin de limiter à certains sous-domaines ou types de pages et éviter les données inutiles. -
Utilisez des outils Python pour valider et nettoyer les données aspirées : équilibrage, suppression des valeurs nulles, etc. pandas, numpy, seaborn et d’autres sont très utiles. Pour en savoir plus, voyez notre cours Cleaning Data in Python.
Firecrawl vs outils de scraping traditionnels
Firecrawl présente de nombreux avantages qui en font un excellent choix dans la plupart des cas face à des outils comme Scrapy, BeautifulSoup ou Puppeteer. Il gère sans effort les contenus rendus côté client, là où BeautifulSoup exige Selenium et souvent des inspections manuelles. Il propose une rotation de proxy intégrée et gère les limites de débit, réduisant le temps de configuration par rapport aux paramétrages manuels de Scrapy. De plus, ses capacités d’extraction via LLM offrent des données structurées, une fonctionnalité généralement absente des outils traditionnels.
Les outils classiques peuvent toutefois être préférés dans certains cas : exécution locale (BeautifulSoup fonctionne en local sans dépendance à une API, utile pour éviter le cloud) ou besoins de personnalisation extrême (Scrapy offre un contrôle fin pour des pipelines de scraping hautement personnalisés).
Intégrations et écosystème
Firecrawl s’intègre parfaitement avec de nombreux frameworks LLM, avec un écosystème solide qui renforce son utilité dans les workflows IA. Vous pouvez l’intégrer à LangChain via le module FirecrawlLoader pour ingérer facilement des données web dans vos pipelines. Avec LlamaIndex, FirecrawlReader prend en charge le chargement de données web pour l’indexation et la requête. Firecrawl est aussi un outil intégré pour explorer des sites dans CrewAI et prend en charge d’autres frameworks comme Flowise, Dify et CAMEL-AI, avec une large compatibilité.
Tarifs et limites d’usage
Firecrawl propose plusieurs formules selon les besoins. Veillez à consulter la page officielle des tarifs pour les éventuelles mises à jour.
- Offre gratuite : inclut un nombre limité de crédits, adaptée aux tests et petits projets.
- Hobby : plus de crédits pour un individu ou une petite équipe, à faible coût.
- Standard, Growth, Enterprise : crédits en hausse, limites de débit supérieures et fonctions avancées (comme des requêtes par minute personnalisées).
Le système de crédits fonctionne comme suit :
|
Offre |
Crédits |
Fonctionnalités |
Idéal pour |
|
Free |
Limités |
Scraping basique, tests |
Débutants, petits projets |
|
Hobby |
Modérés |
Plus de crédits, fonctions standards |
Développeurs individuels |
|
Standards |
Élevés |
Limites supérieures, fonctions avancées |
Équipes en croissance |
|
Growth |
Très élevés |
Scalable, options sur mesure |
Grands projets |
|
Enterprise |
Illimités |
RPM personnalisé, support dédié |
Volumes élevés, usage entreprise |
Conclusion
Firecrawl change la donne pour l’extraction de données web, en particulier pour les applications IA. En convertissant les sites en données propres, structurées et prêtes pour les LLM, il aide les développeurs à construire plus intelligemment. Sa facilité d’usage, ses riches fonctionnalités et ses nombreuses intégrations en font un choix de premier plan, y compris pour le suivi des prix dans des workflows RAG.
Nous vous invitons à tester l’offre gratuite de Firecrawl pour évaluer ses capacités. Restez en lien avec la communauté sur GitHub et Discord pour suivre les actualités, conseils et bonnes pratiques.
Avec Firecrawl, la donnée web n’est plus un obstacle : c’est un atout pour vos innovations en IA.
Pour aller plus loin, nous vous recommandons :
Je travaille sur des systèmes d'IA accélérés permettant une intelligence de pointe avec des pipelines ML fédérés sur des données décentralisées et des charges de travail distribuées. Mywork se concentre sur les grands modèles, le traitement de la parole, la vision par ordinateur, l'apprentissage par renforcement et les topologies avancées de ML.
FAQs
Pourquoi ai-je une erreur de délai d’attente (timeout) ?
Vérifiez d’abord que vous utilisez correctement votre clé d’API, puis déboguez si le site repère bien les éléments que vous ciblez.
Firecrawl utilise-t-il uniquement une recherche pilotée par l’IA ?
Non, vous pouvez utiliser différents types de recherche, comme la recherche par sélecteur ou basée LLM.
Firecrawl peut-il gérer les sites avec beaucoup de contenu JavaScript ?
Oui, Firecrawl est optimisé y compris pour les sites très dynamiques.
Dans quels cas privilégier un outil traditionnel comme BeautifulSoup plutôt que FireCrawl ?
BeautifulSoup fonctionne en local, est gratuit et gère le scraping HTML simple.
Puis-je tester Firecrawl gratuitement ?
Oui, vous disposez d’un nombre limité de requêtes par minute en mode test.
