Firecrawl Projekt – Detaillierte Beschreibung
Projektübersicht
Firecrawl ist ein API-Dienst, der URLs empfängt, sie crawlt und in sauberes Markdown oder strukturierte Daten umwandelt. Er crawlt alle zugänglichen Unterseiten und liefert für jede Seite saubere Daten. Keine Sitemap erforderlich.
Kernfunktionen
1. Web Scraping
- Scraping einer einzelnen URL und Abrufen von Inhalten im LLM-Ready-Format
- Unterstützt verschiedene Ausgabeformate: Markdown, strukturierte Daten, Screenshots, HTML
- Extraktion strukturierter Daten durch LLM
2. Web Crawling
- Crawlen aller URLs einer Webseite und Zurückgeben von Inhalten im LLM-Ready-Format
- Entdeckung aller zugänglichen Unterseiten ohne Sitemap
- Unterstützt benutzerdefinierte Crawling-Tiefe und Ausschlussregeln
3. Website-Mapping
- Eingabe einer Website, um alle Website-URLs zu erhalten – extrem schnell
- Unterstützt die Suche nach bestimmten URL-Mustern
4. Web Search
- Durchsuchen des Webs und Abrufen vollständiger Inhalte aus den Ergebnissen
- Anpassbare Suchparameter (Sprache, Land usw.)
- Option zur Entnahme verschiedener Inhaltsformate aus den Suchergebnissen
5. Datenextraktion
- Verwenden von KI, um strukturierte Daten von einzelnen Seiten, mehreren Seiten oder der gesamten Website abzurufen
- Unterstützt die Definition von Extraktionsregeln durch Prompts und JSON-Schemas
- Unterstützt Platzhalter-URL-Muster
6. Batch-Verarbeitung
- Neue asynchrone Endpunkte zum gleichzeitigen Crawlen von Tausenden von URLs
- Übermittlung von Batch-Crawling-Aufträgen und Rückgabe einer Auftrags-ID zur Statusprüfung
Technische Eigenschaften
LLM-Ready-Format
- Markdown: Sauberes Dokumentformat
- Strukturierte Daten: Extrahierte Daten im JSON-Format
- Screenshots: Visuelle Erfassung der Seite
- HTML: Ursprünglicher HTML-Inhalt
- Links und Metadaten: Extraktion von Seiteninformationen
Umgang mit komplexen Situationen
- Proxy und Anti-Bot-Mechanismen: Umgehung von Zugriffsbeschränkungen
- Dynamischer Inhalt: Verarbeitung von JavaScript-gerenderten Inhalten
- Ausgabeanalyse: Intelligente Inhaltsanalyse
- Orchestrierung: Komplexes Prozessmanagement
Anpassungsfähigkeit
- Ausschluss von Tags: Filtern unerwünschter Inhalte
- Authentifiziertes Crawling: Crawlen von Inhalten, die eine Authentifizierung erfordern, mit benutzerdefinierten Headern
- Maximale Crawling-Tiefe: Steuerung des Crawling-Bereichs
- Medienanalyse: Unterstützung von PDF, DOCX, Bildern
Interaktive Funktionen (Aktionen)
Vor dem Crawlen von Inhalten können verschiedene Aktionen ausgeführt werden:
- Klicken: Klicken auf Seitenelemente
- Scrollen: Seitenscrollvorgänge
- Eingabe: Texteingabe
- Warten: Warten auf das Laden der Seite
- Taste: Tastaturbedienung
API-Nutzungsbeispiele
Crawlen einer Website
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"]
}
}'
Scraping einer einzelnen Seite
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"]
}'
Strukturierte Datenextraktion
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"]
}
}
}'
SDK-Unterstützung
Python SDK
pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from firecrawl.firecrawl import ScrapeOptions
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# Scraping einer Website
scrape_status = app.scrape_url(
'https://firecrawl.dev',
formats=["markdown", "html"]
)
print(scrape_status)
# Crawlen einer Website
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"});
// Scraping einer Website
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
formats: ['markdown', 'html'],
});
if (scrapeResponse) {
console.log(scrapeResponse)
}
// Crawlen einer Website
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
} satisfies CrawlParams, true, 30) satisfies CrawlStatusResponse;
Integrationsunterstützung
LLM-Framework-Integration
- Langchain: Python- und JavaScript-Versionen
- Llama Index: Datenkonnektor
- Crew.ai: KI-Agenten-Framework
- Composio: Werkzeugintegration
- PraisonAI: KI-Orchestrierung
- Superinterface: Assistentenfunktionen
- Vectorize: Vektorisierungsintegration
Low-Code-Frameworks
- Dify: KI-Anwendungsbauplattform
- Langflow: Visueller KI-Prozess
- Flowise AI: No-Code-KI-Erstellung
- Cargo: Datenintegration
- Pipedream: Workflow-Automatisierung
Andere Integrationen
- Zapier: Automatisierte Workflows
- Pabbly Connect: Anwendungsintegration
Lizenz und Bereitstellung
Open-Source-Lizenz
- Hauptsächlich GNU Affero General Public License v3.0 (AGPL-3.0)
- SDK und einige UI-Komponenten verwenden die MIT-Lizenz
Gehosteter Dienst
- Eine gehostete Version ist unter firecrawl.dev verfügbar
- Cloud-Lösungen bieten zusätzliche Funktionen und Enterprise-Support
Selbst-Hosting
- Unterstützung für lokale Bereitstellung
- Derzeit noch in Entwicklung, Integration benutzerdefinierter Module in ein monolithisches Repository
- Kann lokal ausgeführt werden, ist aber noch nicht vollständig für die Selbst-Hosting-Bereitstellung vorbereitet
Anwendungsfälle
- KI-Datenvorbereitung: Bereitstellung sauberer Trainingsdaten für LLMs
- Content Aggregation: Sammeln und Ordnen von Inhalten von mehreren Websites
- Wettbewerbsanalyse: Überwachung von Änderungen auf Wettbewerber-Websites
- SEO-Forschung: Analyse von Website-Struktur und -Inhalten
- Data Mining: Extrahieren strukturierter Informationen von Websites
- Dokumentengenerierung: Konvertieren von Website-Inhalten in Dokumentformate
Nutzungshinweise
Benutzer sind dafür verantwortlich, die Richtlinien der Websites einzuhalten, wenn sie Firecrawl zum Scraping, Suchen und Crawlen verwenden. Es wird empfohlen, vor dem Start von Crawling-Aktivitäten die Datenschutzrichtlinien und Nutzungsbedingungen der jeweiligen Website einzuhalten. Standardmäßig befolgt Firecrawl beim Crawlen die Anweisungen, die in der robots.txt-Datei der Website angegeben sind.
Projektstatus
Das Projekt befindet sich derzeit in aktiver Entwicklung, wobei das Team benutzerdefinierte Module in ein monolithisches Repository integriert. Obwohl es noch nicht vollständig für die Selbst-Hosting-Bereitstellung vorbereitet ist, kann es lokal für Entwicklung und Tests ausgeführt werden. Das Projekt verfügt über eine aktive Community und kontinuierliche Updates und ist eine führende Lösung im Bereich der Webdatenextraktion.
