Stärken Sie Ihre KI-Apps mit sauberen Daten von jeder Website. Mit erweiterten Scraping-, Crawling- und Datenextraktionsfunktionen.
Dieses Repository befindet sich in der Entwicklung und wir integrieren immer noch benutzerdefinierte Module in das Mono-Repository. Es ist noch nicht vollständig für die selbstgehostete Bereitstellung bereit, aber Sie können es lokal ausführen.
Firecrawl ist ein API-Dienst, der eine URL nimmt, sie crawlt und in saubere Markdown- oder strukturierte Daten umwandelt. Wir crawlen alle zugänglichen Unterseiten und liefern Ihnen jeweils saubere Daten. Keine Sitemap erforderlich. Schauen Sie sich unsere Dokumentation an.
Pst. Hey, du, komm zu unseren Sternguckern :)
Mit unserer gehosteten Version bieten wir eine benutzerfreundliche API. Den Spielplatz und die Dokumentation finden Sie hier. Wenn Sie möchten, können Sie das Backend auch selbst hosten.
Schauen Sie sich die folgenden Ressourcen an, um loszulegen:
API : Dokumentation
SDKs : Python, Node, Go, Rust
LLM-Frameworks : Langchain (Python), Langchain (JS), Llama Index, Crew.ai, Composio, PraisonAI, Superinterface, Vectorize
Low-Code-Frameworks : Dify, Langflow, Flowise AI, Cargo, Pipedream
Andere : Zapier, Pabbly Connect
Möchten Sie ein SDK oder eine Integration? Lassen Sie es uns wissen, indem Sie ein Problem eröffnen.
Informationen zur lokalen Ausführung finden Sie in der Anleitung hier.
Um die API nutzen zu können, müssen Sie sich bei Firecrawl anmelden und einen API-Schlüssel erhalten.
Scrape : Scrapt eine URL und erhält deren Inhalt im LLM-fähigen Format (Markdown, strukturierte Daten über LLM Extract, Screenshot, HTML).
Crawl : Durchsucht alle URLs einer Webseite und gibt Inhalte im LLM-fähigen Format zurück
Karte : Geben Sie eine Website ein und erhalten Sie alle Website-URLs – extrem schnell
LLM-fähige Formate : Markdown, strukturierte Daten, Screenshot, HTML, Links, Metadaten
Das Schwierige : Proxys, Anti-Bot-Mechanismen, dynamischer Inhalt (js-gerendert), Ausgabeparsing, Orchestrierung
Anpassbarkeit : Tags ausschließen, mit benutzerdefinierten Headern hinter Authentifizierungswände kriechen, maximale Crawling-Tiefe usw.
Medienanalyse : PDFs, DOCX, Bilder.
Zuverlässigkeit geht vor : Entwickelt, um die Daten zu erhalten, die Sie benötigen – egal wie schwierig es ist.
Aktionen : Klicken, Scrollen, Eingabe, Warten und mehr vor dem Extrahieren von Daten
Batchverarbeitung (neu) : Scrapen Sie Tausende von URLs gleichzeitig mit einem neuen asynchronen Endpunkt
Alle Funktionen von Firecrawl und deren Verwendung finden Sie in unserer Dokumentation
Wird zum Crawlen einer URL und aller zugänglichen Unterseiten verwendet. Dadurch wird ein Crawl-Job gesendet und eine Job-ID zurückgegeben, um den Status des Crawls zu überprüfen.
curl -X POST https://api.firecrawl.dev/v1/crawl -H 'Inhaltstyp: application/json' -H 'Autorisierung: Bearer fc-YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "limit": 100, "scrapeOptions": { "formats": ["markdown", "html"] } }'
Gibt eine Crawl-Job-ID und die URL zurück, um den Status des Crawls zu überprüfen.
{ „success“: true, „id“: „123-456-789“, „url“: „https://api.firecrawl.dev/v1/crawl/123-456-789“}
Wird verwendet, um den Status eines Crawl-Auftrags zu überprüfen und sein Ergebnis abzurufen.
curl -X GET https://api.firecrawl.dev/v1/crawl/123-456-789 -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY'
{ „status“: „abgeschlossen“, „total“: 36, „creditsUsed“: 36, „expiresAt“: „2024-00-00T00:00:00.000Z“, „data“: [ { "markdown": "[Homepage von Firecrawl Docs![Lichtlogo](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...", " html": "<!DOCTYPE html><html lang="en" class="js-focus-visible lg:[--scroll-mt:9.5rem]" data-js-focus-visible="">...", "metadata": {"title": "Erstellen Sie einen 'Chat mit Website' mit Groq Llama 3 |. sourceURL“: „https://docs.firecrawl.dev/learn/rag-llama3“, „description“: „Erfahren Sie, wie Sie Firecrawl, Groq Llama 3 und Langchain verwenden, um einen „Chat mit Ihrer Website“ zu erstellen. bot.","ogLocaleAlternate": [],"statusCode": 200 } } ] }
Wird zum Scrapen einer URL und zum Abrufen ihres Inhalts in den angegebenen Formaten verwendet.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "formats" : ["markdown", "html"] }'
Antwort:
{ "success": true, "data": {"markdown": "Launch Week I ist da! [Sehen Sie sich unsere Day-2-Veröffentlichung an](https://www.firecrawl.dev/blog/launch-week-i-day -2-doubled-rate-limits)[? Erhalten Sie 2 Monate kostenlos...","html": "<!DOCTYPE html><html lang="en" class="light" style="color-scheme: light ;"><Körper class="__variable_36bd41 __variable_d7dc5d font-inter ...","metadata": { "title": "Home - Firecrawl", "description": "Firecrawl crawlt und konvertiert jede Website in sauberes Markdown.", "Sprache": " en", "keywords": "Firecrawl,Markdown,Data,Mendable,Langchain", "robots": "follow, index", "ogTitle": „Firecrawl“, „ogDescription“: „Verwandeln Sie jede Website in LLM-fähige Daten.“, „ogUrl“: „https://www.firecrawl.dev/“, „ogImage“: „https://www.firecrawl. dev/og.png?123", "ogLocaleAlternate": [], "ogSiteName": "Firecrawl", "sourceURL": "https://firecrawl.dev", "statusCode": 200} } }
Wird verwendet, um eine URL zuzuordnen und URLs der Website abzurufen. Dadurch werden die meisten auf der Website vorhandenen Links zurückgegeben.
curl -X POST https://api.firecrawl.dev/v1/map -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev" }'
Antwort:
{ „status“: „success“, „links“: [„https://firecrawl.dev“, „https://www.firecrawl.dev/pricing“, „https://www.firecrawl.dev/blog ","https://www.firecrawl.dev/playground","https://www.firecrawl.dev/smart-crawl", ] }
Mit der Karte mit search
können Sie innerhalb einer Website nach bestimmten URLs suchen.
curl -X POST https://api.firecrawl.dev/v1/map -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev", "search": "docs" }'
Die Antwort ist eine geordnete Liste von den relevantesten zu den am wenigsten relevanten.
{ „status“: „success“, „links“: [„https://docs.firecrawl.dev“, „https://docs.firecrawl.dev/sdks/python“, „https://docs.firecrawl .dev/learn/rag-llama3", ] }
Wird zum Extrahieren strukturierter Daten aus Scraped-Seiten verwendet.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "url": "https://www.mendable.ai/", "formats": ["extract"], "extract": { "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" ] } } }'
{ „success“: true, „data“: {“content“: „Raw Content“, „metadata“: { „title“: „Mendable“, „description“: „Mendable ermöglicht Ihnen die einfache Erstellung von KI-Chat-Anwendungen. Ingest , anpassen und dann mit einer Codezeile an einer beliebigen Stelle bereitstellen. Präsentiert von SideGuide“, „robots“: „follow, index“, „ogTitle“: „Mendable“, „ogDescription“: „Mendable ermöglicht es Ihnen Erstellen Sie ganz einfach KI-Chat-Anwendungen, passen Sie sie an und stellen Sie sie dann überall dort bereit, wo Sie möchten. //mendable.ai/mendable_new_og1.png", "ogLocaleAlternate": [], "ogSiteName": "Mendable", "sourceURL": "https://mendable.ai/"},"llm_extraction": { "company_mission": "Trainieren Sie eine sichere KI auf Ihren technischen Ressourcen, die Kunden- und Mitarbeiterfragen beantwortet, damit Ihr Team dies nicht tun muss", "supports_sso": true, „is_open_source“: false, „is_in_yc“: true} } }
Sie können jetzt ohne Schema extrahieren, indem Sie einfach eine prompt
an den Endpunkt übergeben. Der LM wählt die Struktur der Daten.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev/", "formats": ["extract"], "extract": { "prompt": "Extrahieren Sie die Unternehmensmission von der Seite." } }'
Mit Firecrawl können Sie verschiedene Aktionen auf einer Webseite ausführen, bevor Sie deren Inhalt löschen. Dies ist besonders nützlich für die Interaktion mit dynamischen Inhalten, die Navigation durch Seiten oder den Zugriff auf Inhalte, die eine Benutzerinteraktion erfordern.
Hier ist ein Beispiel dafür, wie Sie mithilfe von Aktionen zu google.com navigieren, nach Firecrawl suchen, auf das erste Ergebnis klicken und einen Screenshot erstellen.
curl -X POST https://api.firecrawl.dev/v1/scrape -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "url": "google.com", "formats": ["markdown"], "actions": [ {"type": "wait", "milliseconds": 2000}, {"type": "click", "selector": "textarea[title="Search"]"}, {"type": "wait", "milliseconds": 2000}, {"type": "write", "text": "firecrawl"}, {"type": "wait", "milliseconds": 2000}, {"type": "press", "key": "ENTER"}, {"type": "wait", "milliseconds ": 3000}, {"type": "click", "selector": "h3"}, {"type": "wait", "milliseconds": 3000}, {"type": "screenshot"} ] }'
Sie können jetzt mehrere URLs gleichzeitig im Batch-Scraping durchführen. Es ist der Funktionsweise des /crawl-Endpunkts sehr ähnlich. Es sendet einen Batch-Scrape-Job und gibt eine Job-ID zurück, um den Status des Batch-Scrape zu überprüfen.
curl -X POST https://api.firecrawl.dev/v1/batch/scrape -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "urls": ["https://docs.firecrawl.dev", "https://docs.firecrawl.dev/sdks/overview"], "formats" : ["markdown", "html" ] }'
Wird verwendet, um das Web zu durchsuchen, die relevantesten Ergebnisse zu erhalten, jede Seite zu durchsuchen und den Preisnachlass zurückzugeben.
curl -X POST https://api.firecrawl.dev/v0/search -H 'Inhaltstyp: application/json' -H 'Autorisierung: Inhaber YOUR_API_KEY' -d '{ "query": "firecrawl", "pageOptions": { "fetchPageContent": true // false für eine schnelle Serp-API } }'
{ „success“: true, „data“: [ { "url": "https://mendable.ai", "markdown": "# Markdown Content", "provider": "web-scraper", "metadata": {"title": "Mendable | AI for CX und Vertrieb“, „description“: „KI für CX und Vertrieb“, „Sprache“: null, „sourceURL“: „https://www.mendable.ai/“ } } ] }
pip installiere firecrawl-py
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")# Scrape eine Website:scrape_status = app.scrape_url( 'https://firecrawl.dev', params={'formats': ['markdown', 'html']} )print(scrape_status)# Eine Website crawlen:crawl_status = app.crawl_url( 'https://firecrawl.dev', params={'limit': 100, 'scrapeOptions': {'formats': ['markdown', 'html']} }, poll_interval=30)print(crawl_status)
Mit der LLM-Extraktion können Sie strukturierte Daten ganz einfach aus jeder URL extrahieren. Wir unterstützen pydantische Schemata, um es auch Ihnen einfacher zu machen. So verwenden Sie es:
from 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 Geschichten")data = app.scrape_url('https://news.ycombinator.com', {'formats': ['extract'],'extract': {'schema': TopArticlesSchema.model_json_schema() } })print(data["extract"])
Um das Firecrawl Node SDK zu installieren, können Sie npm verwenden:
npm install @mendable/firecrawl-js
Holen Sie sich einen API-Schlüssel von firecrawl.dev
Legen Sie den API-Schlüssel als Umgebungsvariable mit dem Namen FIRECRAWL_API_KEY
fest oder übergeben Sie ihn als Parameter an die FirecrawlApp
-Klasse.
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});// Scrape eine Websiteconst scrapeResponse = waiting app.scrapeUrl('https: //firecrawl.dev', { Formate: ['markdown', 'html'],});if (scrapeResponse) { console.log(scrapeResponse)}// Eine Website crawlenconst crawlResponse = waiting app.crawlUrl('https://firecrawl.dev', { Grenze: 100, scrapeOptions: {formats: ['markdown', 'html'], }} erfüllt CrawlParams, true, 30) erfüllt CrawlStatusResponse;if (crawlResponse) { console.log(crawlResponse)}
Mit der LLM-Extraktion können Sie strukturierte Daten ganz einfach aus jeder URL extrahieren. Wir unterstützen das Zod-Schema, um es auch für Sie einfacher zu machen. So verwenden Sie es:
import FirecrawlApp from „@mendable/firecrawl-js“;import { z } from „zod“;const app = new FirecrawlApp({ apiKey: "fc-YOUR_API_KEY"});// Definieren Sie ein Schema zum Extrahieren von Inhalten in const schema = z.object({ top: z.array( z.object({title: z.string(),points: z.number(),by: z.string(),commentsURL: z.string(), })).length(5 ).describe("Top 5 Geschichten zu Hacker-News"),});const scrapeResult = waiting app.scrapeUrl("https://news.ycombinator.com", { extractorOptions: { extractSchema: schema },});console.log(scrapeResult.data["llm_extraction"]);
Firecrawl ist Open Source und steht unter der AGPL-3.0-Lizenz.
Um das bestmögliche Produkt zu liefern, bieten wir neben unserem Open-Source-Angebot eine gehostete Version von Firecrawl an. Die Cloud-Lösung ermöglicht es uns, kontinuierlich Innovationen zu entwickeln und einen qualitativ hochwertigen, nachhaltigen Service für alle Benutzer aufrechtzuerhalten.
Firecrawl Cloud ist unter firecrawl.dev verfügbar und bietet eine Reihe von Funktionen, die in der Open-Source-Version nicht verfügbar sind:
Wir lieben Beiträge! Bitte lesen Sie unseren Beitragsleitfaden, bevor Sie eine Pull-Anfrage einreichen. Wenn Sie sich selbst hosten möchten, lesen Sie den Leitfaden zum Selbsthosting.
Es liegt in der alleinigen Verantwortung der Endbenutzer, beim Scraping, Suchen und Crawlen mit Firecrawl die Richtlinien der Websites einzuhalten. Benutzern wird empfohlen, sich an die geltenden Datenschutzrichtlinien und Nutzungsbedingungen der Websites zu halten, bevor sie mit Scraping-Aktivitäten beginnen. Standardmäßig respektiert Firecrawl beim Crawlen die in den robots.txt-Dateien der Websites angegebenen Anweisungen. Durch die Nutzung von Firecrawl erklären Sie sich ausdrücklich mit der Einhaltung dieser Bedingungen einverstanden.
Dieses Projekt ist hauptsächlich unter der GNU Affero General Public License v3.0 (AGPL-3.0) lizenziert, wie in der LICENSE-Datei im Stammverzeichnis dieses Repositorys angegeben. Bestimmte Komponenten dieses Projekts unterliegen jedoch der MIT-Lizenz. Weitere Informationen finden Sie in den LIZENZ-Dateien in diesen spezifischen Verzeichnissen.
Bitte beachten Sie:
Die AGPL-3.0-Lizenz gilt für alle Teile des Projekts, sofern nicht anders angegeben.
Die SDKs und einige UI-Komponenten sind unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in den LIZENZ-Dateien in diesen spezifischen Verzeichnissen.
Wenn Sie dieses Projekt verwenden oder dazu beitragen, stellen Sie sicher, dass Sie die entsprechenden Lizenzbedingungen für die spezifische Komponente einhalten, mit der Sie arbeiten.
Weitere Einzelheiten zur Lizenzierung bestimmter Komponenten finden Sie in den LIZENZ-Dateien in den jeweiligen Verzeichnissen oder wenden Sie sich an die Projektbetreuer.
↑ Zurück nach oben ↑