Présentation détaillée du projet Firecrawl
Aperçu du projet
Firecrawl est un service API qui reçoit une URL, la et la convertit en markdown propre ou en données structurées. toutes les sous-pages accessibles, fournissant des données propres pour chaque page. Aucune carte du site n'est requise.
Fonctionnalités principales
1. Grattage de pages web (Scraping)
- Gratte une seule URL et obtient le contenu dans un format prêt pour LLM
- Prend en charge plusieurs formats de sortie : markdown, données structurées, captures d'écran, HTML
- Obtient des données structurées via l'extraction LLM
2. Exploration de sites web (Crawling)
- toutes les URL d'une page web et renvoie le contenu dans un format prêt pour LLM
- Découvre toutes les sous-pages accessibles sans avoir besoin d'une carte du site
- Prend en charge la profondeur d'exploration personnalisée et les règles d'exclusion
3. Cartographie de sites web (Map)
- Saisissez un site web pour obtenir toutes les URL du site web - vitesse extrêmement rapide
- Prend en charge la recherche de modèles d'URL spécifiques
4. Recherche web (Search)
- Recherche sur le web et obtient le contenu complet des résultats
- Paramètres de recherche personnalisables (langue, pays, etc.)
- Possibilité de choisir de récupérer différents formats de contenu à partir des résultats de recherche
5. Extraction de données (Extract)
- Utilise l'IA pour obtenir des données structurées à partir d'une seule page, de plusieurs pages ou de l'ensemble d'un site web
- Prend en charge la définition de règles d'extraction via des invites et des schémas JSON
- Prend en charge les modèles d'URL génériques
6. Traitement par lots (Batching)
- Nouvel endpoint asynchrone pour gratter des milliers d'URL simultanément
- Soumet des tâches de grattage par lots et renvoie l'ID de la tâche pour vérifier l'état
Caractéristiques techniques
Formats prêts pour LLM
- Markdown : Format de document propre
- Données structurées : Données extraites au format JSON
- Captures d'écran : Capture visuelle de la page
- HTML : Contenu HTML brut
- Liens et métadonnées : Extraction des informations de la page
Gestion des situations complexes
- Proxies et mécanismes anti-robots : Contourne les restrictions d'accès
- Contenu dynamique : Gère le contenu rendu par JavaScript
- Analyse de la sortie : Analyse intelligente du contenu
- Orchestration : Gestion des processus complexes
Capacités de personnalisation
- Exclusion de balises : Filtre le contenu indésirable
- Exploration authentifiée : Explore le contenu nécessitant une authentification à l'aide d'en-têtes personnalisés
- Profondeur d'exploration maximale : Contrôle la portée de l'exploration
- Analyse des médias : Prend en charge les PDF, DOCX, images
Fonctionnalités interactives (Actions)
Diverses actions peuvent être effectuées avant de gratter le contenu :
- Cliquez : Cliquez sur les éléments de la page
- Défilement : Opérations de défilement de la page
- Saisie : Saisie de texte
- Attente : Attente du chargement de la page
- Touche : Opérations de clavier
Exemples d'utilisation de l'API
un site web
curl -X POST https://api.firecrawl.dev/v1/crawl \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"limit": 10,
"scrapeOptions": {
"formats": ["markdown", "html"]
}
}'
Gratter une seule page
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"formats" : ["markdown", "html"]
}'
Extraction de données structurées
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://www.mendable.ai/",
"formats": ["json"],
"jsonOptions": {
"schema": {
"type": "object",
"properties": {
"company_mission": {"type": "string"},
"supports_sso": {"type": "boolean"},
"is_open_source": {"type": "boolean"},
"is_in_yc": {"type": "boolean"}
},
"required": ["company_mission", "supports_sso", "is_open_source", "is_in_yc"]
}
}
}'
Prise en charge des SDK
Python SDK
pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from firecrawl.firecrawl import ScrapeOptions
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# Gratter un site web
scrape_status = app.scrape_url(
'https://firecrawl.dev',
formats=["markdown", "html"]
)
print(scrape_status)
crawl_status = app.crawl_url(
'https://firecrawl.dev',
limit=100,
scrape_options=ScrapeOptions(formats=["markdown", "html"]),
poll_interval=30
)
print(crawl_status)
Node.js SDK
npm install @mendable/firecrawl-js
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';
const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});
// Gratter un site web
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
formats: ['markdown', 'html'],
});
if (scrapeResponse) {
console.log(scrapeResponse)
}
// un site web
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
} satisfies CrawlParams, true, 30) satisfies CrawlStatusResponse;
Prise en charge de l'intégration
Intégration du framework LLM
- Langchain : Versions Python et JavaScript
- Llama Index : Connecteur de données
- Crew.ai : Framework d'agents IA
- Composio : Intégration d'outils
- PraisonAI : Orchestration de l'IA
- Superinterface : Fonctionnalités d'assistant
- Vectorize : Intégration de la vectorisation
Frameworks low-code
- Dify : Plateforme de construction d'applications IA
- Langflow : Flux d'IA visuels
- Flowise AI : Construction d'IA sans code
- Cargo : Intégration de données
- Pipedream : Automatisation du flux de travail
Autres intégrations
- Zapier : Flux de travail automatisés
- Pabbly Connect : Intégration d'applications
Licence et déploiement
Licence open source
- Principalement sous licence GNU Affero General Public License v3.0 (AGPL-3.0)
- Les SDK et certains composants de l'interface utilisateur sont sous licence MIT
Service hébergé
- Une version hébergée est disponible sur firecrawl.dev
- Les solutions cloud offrent des fonctionnalités supplémentaires et une assistance de niveau entreprise
Auto-hébergement
- Prend en charge le déploiement local
- Actuellement en cours de développement, intégrant des modules personnalisés dans un référentiel monolithique
- Peut être exécuté localement, mais n'est pas encore entièrement prêt pour un déploiement auto-hébergé
Cas d'utilisation
- Préparation des données d'IA : Fournir des données d'entraînement propres pour LLM
- Agrégation de contenu : Collecter et organiser le contenu de plusieurs sites web
- Analyse concurrentielle : Surveiller les changements sur les sites web des concurrents
- Recherche SEO : Analyser la structure et le contenu du site web
- Exploration de données : Extraire des informations structurées des sites web
- Génération de documents : Convertir le contenu du site web en format de document
Précautions d'utilisation
Les utilisateurs sont responsables du respect des politiques des sites web lors de l'utilisation de Firecrawl pour le grattage, la recherche et l'exploration. Il est conseillé aux utilisateurs de respecter les politiques de confidentialité et les conditions d'utilisation des sites web applicables avant de lancer toute activité de grattage. Par défaut, Firecrawl respecte les instructions spécifiées dans le fichier robots.txt du site web lors de l'exploration.
État du projet
Le projet est actuellement en développement actif, l'équipe intégrant des modules personnalisés dans un référentiel monolithique. Bien qu'il ne soit pas encore entièrement prêt pour un déploiement auto-hébergé, il peut être exécuté localement pour le développement et les tests. Le projet possède une communauté active et des mises à jour continues, et est une solution de pointe dans le domaine de l'extraction de données web.
