Renforcez vos applications d'IA avec des données propres provenant de n'importe quel site Web. Doté de fonctionnalités avancées de scraping, d’exploration et d’extraction de données.
Ce référentiel est en développement et nous intégrons toujours des modules personnalisés dans le dépôt mono. Il n'est pas encore entièrement prêt pour un déploiement auto-hébergé, mais vous pouvez l'exécuter localement.
Firecrawl est un service API qui prend une URL, l'analyse et la convertit en données structurées ou en démarques propres. Nous explorons toutes les sous-pages accessibles et vous fournissons des données claires pour chacune. Aucun plan du site requis. Consultez notre documentation.
TVP. hé, toi, rejoins nos observateurs d'étoiles :)
Nous fournissons une API facile à utiliser avec notre version hébergée. Vous pouvez trouver le terrain de jeu et la documentation ici. Vous pouvez également héberger vous-même le backend si vous le souhaitez.
Consultez les ressources suivantes pour commencer :
API : Documentation
SDK : Python, Node, Go, Rust
Frameworks LLM : Langchain (python), Langchain (js), Llama Index, Crew.ai, Composio, PraisonAI, Superinterface, Vectorize
Frameworks low-code : Dify, Langflow, Flowise AI, Cargo, Pipedream
Autres : Zapier, Pabbly Connect
Vous voulez un SDK ou une intégration ? Faites-le-nous savoir en ouvrant un numéro.
Pour exécuter localement, reportez-vous au guide ici.
Pour utiliser l'API, vous devez vous inscrire sur Firecrawl et obtenir une clé API.
Scrape : gratte une URL et récupère son contenu au format LLM-ready (markdown, données structurées via LLM Extract, capture d'écran, html)
Crawl : récupère toutes les URL d'une page Web et renvoie le contenu au format prêt pour LLM
Carte : saisissez un site Web et obtenez toutes les URL du site Web - extrêmement rapide
Formats prêts pour LLM : démarques, données structurées, capture d'écran, HTML, liens, métadonnées
Les choses difficiles : proxys, mécanismes anti-bot, contenu dynamique (rendu en js), analyse de sortie, orchestration
Personnalisation : exclure les balises, explorer derrière les murs d'authentification avec des en-têtes personnalisés, la profondeur d'exploration maximale, etc...
Analyse des médias : pdfs, docx, images.
La fiabilité avant tout : conçue pour obtenir les données dont vous avez besoin, quelle que soit la difficulté.
Actions : cliquer, faire défiler, saisir, attendre et plus encore avant d'extraire les données
Batching (Nouveau) : supprimez des milliers d'URL en même temps avec un nouveau point de terminaison asynchrone
Vous pouvez retrouver toutes les fonctionnalités de Firecrawl et comment les utiliser dans notre documentation
Utilisé pour explorer une URL et toutes les sous-pages accessibles. Cela soumet une tâche d'analyse et renvoie un ID de tâche pour vérifier l'état de l'analyse.
curl -X POST https://api.firecrawl.dev/v1/crawl -H 'Type de contenu : application/json' -H 'Autorisation : Porteur fc-YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "limit": 100, "scrapeOptions": { "formats": ["markdown", "html"] } }'
Renvoie un identifiant de tâche d'analyse et l'URL pour vérifier l'état de l'analyse.
{ "succès": vrai, "id": "123-456-789", "url": "https://api.firecrawl.dev/v1/crawl/123-456-789"}
Utilisé pour vérifier l'état d'une tâche d'analyse et obtenir son résultat.
curl -X OBTENIR https://api.firecrawl.dev/v1/crawl/123-456-789 -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY'
{ "status": "completed", "total": 36, "creditsUsed": 36, "expiresAt": "2024-00-00T00:00:00.000Z", "data": [ { "markdown": "[Page d'accueil de Firecrawl Docs ![logo léger](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...", " html": ".. .", "metadata": {"title": "Créer un 'Chat avec un site Web' en utilisant Groq Llama 3 | Firecrawl","langue": "fr","sourceURL": "https://docs.firecrawl.dev /learn/rag-llama3","description": "Apprenez à utiliser Firecrawl, Groq Llama 3 et Langchain pour créer un bot 'Chat avec votre site Web'.","ogLocaleAlternate": [],"statusCode": 200 } } ] }
Utilisé pour récupérer une URL et obtenir son contenu dans les formats spécifiés.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "formats" : ["markdown", "html"] }'
Réponse:
{ "success": true, "data": {"markdown": "La semaine de lancement I est là ! [Voir notre version du jour 2](https://www.firecrawl.dev/blog/launch-week-i-day -2-doubled-rate-limits)[? Obtenez 2 mois gratuits...","html": "Carte (Alpha)
Utilisé pour mapper une URL et obtenir les URL du site Web. Cela renvoie la plupart des liens présents sur le site Web.
curl -X POST https://api.firecrawl.dev/v1/map -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev" }'Réponse:
{ "statut": "succès", "liens": ["https://firecrawl.dev","https://www.firecrawl.dev/pricing","https://www.firecrawl.dev/blog ","https://www.firecrawl.dev/playground","https://www.firecrawl.dev/smart-crawl", ] }Carte avec recherche
La carte avec paramètre
search
vous permet de rechercher des URL spécifiques dans un site Web.curl -X POST https://api.firecrawl.dev/v1/map -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev", "search": "docs" }'La réponse sera une liste ordonnée du plus pertinent au moins pertinent.
{ "statut": "succès", "liens": ["https://docs.firecrawl.dev","https://docs.firecrawl.dev/sdks/python","https://docs.firecrawl .dev/learn/rag-llama3", ] }Extraction LLM (bêta)
Utilisé pour extraire des données structurées à partir de pages récupérées.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "url": "https://www.mendable.ai/", "formats": ["extract"], "extract": { "schema": { "type": "object", " propriétés": { "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" ] } } }'{ "success": true, "data": {"content": "Contenu brut","metadata": { "title": "Mendable", "description": "Mendable vous permet de créer facilement des applications de chat IA. Ingérer , personnalisez, puis déployez avec une ligne de code où vous le souhaitez. Présenté par SideGuide", "robots": "follow, index", "ogTitle": "Mendable", "ogDescription": "Mendable vous permet de créer facilement. Applications de chat IA. Ingérez, personnalisez, puis déployez avec une seule ligne de code où vous le souhaitez. Présenté par SideGuide", "ogUrl": "https://mendable.ai/", "ogImage": "https://. mendable.ai/mendable_new_og1.png", "ogLocaleAlternate": [], "ogSiteName": "Mendable", "sourceURL": "https://mendable.ai/"},"llm_extraction": { "company_mission": " Formez une IA sécurisée sur vos ressources techniques qui répond aux questions des clients et des employés afin que votre équipe n'ait pas à le faire", "supports_sso": true, "is_open_source": false, "is_in_yc": true} } }Extraction sans schéma (Nouveau)
Vous pouvez désormais extraire sans schéma en transmettant simplement une
prompt
au point de terminaison. Le LLM choisit la structure des données.curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev/", "formats": ["extract"], "extract": { "prompt": "Extraire la mission de l'entreprise de la page." } }'Interagir avec la page avec des actions (Cloud uniquement)
Firecrawl vous permet d'effectuer diverses actions sur une page Web avant de supprimer son contenu. Ceci est particulièrement utile pour interagir avec du contenu dynamique, naviguer dans les pages ou accéder à du contenu nécessitant une interaction de l'utilisateur.
Voici un exemple d'utilisation des actions pour accéder à google.com, rechercher Firecrawl, cliquer sur le premier résultat et prendre une capture d'écran.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "url": "google.com", "formats": ["markdown"], "actions": [ {"type": "attendre", "millisecondes": 2000}, {"type": "click", "selector": "textarea[title="Search"]"}, {"type": "attendre", "milliseconds": 2000}, {"type": "write", "text": " firecrawl"}, {"type": "attendre", "millisecondes": 2000}, {"type": "press", "key": "ENTER"}, {"type": "attendre", "millisecondes" : 3000}, {"type": "cliquez", "sélecteur": "h3"}, {"type": "attendre", "millisecondes": 3000}, {"type": "capture d'écran"} ] }'Traitement par lots de plusieurs URL (nouveau)
Vous pouvez désormais supprimer par lots plusieurs URL en même temps. Cela ressemble beaucoup au fonctionnement du point de terminaison /crawl. Il soumet une tâche de récupération par lots et renvoie un ID de tâche pour vérifier l'état de la récupération par lots.
curl -X POST https://api.firecrawl.dev/v1/batch/scrape -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "urls": ["https://docs.firecrawl.dev", "https://docs.firecrawl.dev/sdks/overview"], "formats" : ["markdown", "html" ] }'Recherche (v0) (bêta)
Utilisé pour rechercher sur le Web, obtenir les résultats les plus pertinents, gratter chaque page et renvoyer la démarque.
curl -X POST https://api.firecrawl.dev/v0/search -H 'Type de contenu : application/json' -H 'Autorisation : Porteur YOUR_API_KEY' -d '{ "query": "firecrawl", "pageOptions": { "fetchPageContent": true // false pour une API serp rapide } }'{ "succès": vrai, "données": [ { "url": "https://mendable.ai", "markdown": "# Markdown Content", "provider": "web-scraper", "metadata": {"title": "Réparable | AI pour CX et Ventes","description": "IA pour CX et Ventes","langue": null,"sourceURL": "https://www.mendable.ai/" } } ] }Utilisation du SDK Python
Installation du SDK Python
pip installer firecrawl-pyExplorer un site Web
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")# Scrape un site Web :scrape_status = app.scrape_url( 'https://firecrawl.dev', params={'formats' : ['markdown', 'html']} )print(scrape_status)# Explorer un site Web :crawl_status = app.crawl_url( 'https://firecrawl.dev', params={'limit' : 100, 'scrapeOptions' : {'formats' : ['markdown', 'html']} }, poll_interval=30)print(crawl_status)Extraire des données structurées à partir d'une URL
Avec l'extraction LLM, vous pouvez facilement extraire des données structurées de n'importe quelle URL. Nous prenons en charge les schémas pydantiques pour vous faciliter la tâche également. Voici comment l'utiliser :
à partir de firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")class ArticleSchema(BaseModel):title: strpoints: intby: strcommentsURL: strclass TopArticlesSchema(BaseModel):top: List[ArticleSchema] = Field(..., max_items=5, description="Top 5 des histoires")data = app.scrape_url('https://news.ycombinator.com', {'formats' : ['extract'],'extract' : {'schema' : TopArticlesSchema.model_json_schema() } })imprimer(données["extrait"])Utilisation du SDK de nœud
Installation
Pour installer le SDK Firecrawl Node, vous pouvez utiliser npm :
npm install @réparable/firecrawl-jsUsage
Obtenez une clé API de firecrawl.dev
Définissez la clé API en tant que variable d'environnement nommée
FIRECRAWL_API_KEY
ou transmettez-la en tant que paramètre à la classeFirecrawlApp
.import FirecrawlApp, { CrawlParams, CrawlStatusResponse } depuis '@mendable/firecrawl-js';const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});// Scrape un site Webconst scrapeResponse = wait app.scrapeUrl('https: //firecrawl.dev', { formats : ['markdown', 'html'],});if (scrapeResponse) { console.log(scrapeResponse)}// Explorer un site Webconst crawlResponse = wait app.crawlUrl('https://firecrawl.dev', { limite : 100, scrapeOptions : {formats : ['markdown', 'html'], }} satisfait CrawlParams, true, 30) satisfait CrawlStatusResponse;if (crawlResponse) { console.log(crawlResponse)}Extraire des données structurées à partir d'une URL
Avec l'extraction LLM, vous pouvez facilement extraire des données structurées de n'importe quelle URL. Nous prenons en charge le schéma zod pour vous faciliter la tâche également. Voici comment l'utiliser :
importer FirecrawlApp depuis "@mendable/firecrawl-js" ; importer { z } depuis "zod" ; const app = new FirecrawlApp ({ apiKey : "fc-YOUR_API_KEY"});// Définir un schéma pour extraire le contenu dansconst schema = z.object({ haut : z.array( z.object({titre : z.string(),points : z.number(),by : z.string(),commentsURL : z.string(), })).length(5 ).describe("Top 5 des articles sur Hacker News"),});const scrapeResult = wait app.scrapeUrl("https://news.ycombinator.com", { extractorOptions : { extractionSchema : schéma },});console.log(scrapeResult.data["llm_extraction"]);Offre Open Source vs Cloud
Firecrawl est open source disponible sous la licence AGPL-3.0.
Pour offrir le meilleur produit possible, nous proposons une version hébergée de Firecrawl parallèlement à notre offre open source. La solution cloud nous permet d'innover en permanence et de maintenir un service durable et de haute qualité pour tous les utilisateurs.
Firecrawl Cloud est disponible sur firecrawl.dev et offre une gamme de fonctionnalités qui ne sont pas disponibles dans la version open source :
Contribuer
Nous aimons les contributions ! Veuillez lire notre guide de contribution avant de soumettre une pull request. Si vous souhaitez vous auto-héberger, reportez-vous au guide d'auto-hébergement.
Il est de la seule responsabilité des utilisateurs finaux de respecter les politiques des sites Web lors du scraping, de la recherche et de l'exploration avec Firecrawl. Il est conseillé aux utilisateurs de respecter les politiques de confidentialité et les conditions d'utilisation applicables des sites Web avant de lancer toute activité de scraping. Par défaut, Firecrawl respecte les directives spécifiées dans les fichiers robots.txt des sites Web lors de l'exploration. En utilisant Firecrawl, vous acceptez expressément de respecter ces conditions.
Contributeurs
Avis de non-responsabilité concernant la licence
Ce projet est principalement sous licence GNU Affero General Public License v3.0 (AGPL-3.0), comme spécifié dans le fichier LICENSE dans le répertoire racine de ce référentiel. Cependant, certains composants de ce projet sont sous licence MIT. Reportez-vous aux fichiers LICENSE dans ces répertoires spécifiques pour plus de détails.
Veuillez noter:
La licence AGPL-3.0 s'applique à toutes les parties du projet, sauf indication contraire.
Les SDK et certains composants de l'interface utilisateur sont sous licence MIT. Reportez-vous aux fichiers LICENSE dans ces répertoires spécifiques pour plus de détails.
Lorsque vous utilisez ou contribuez à ce projet, assurez-vous de respecter les conditions de licence appropriées pour le composant spécifique avec lequel vous travaillez.
Pour plus de détails sur la licence de composants spécifiques, veuillez vous référer aux fichiers LICENSE dans les répertoires respectifs ou contacter les responsables du projet.
↑ Retour en haut ↑