Crawl4AI - Open-Source-Web-Crawler, optimiert speziell für LLMs
Projektübersicht
Crawl4AI ist ein schneller, KI-fähiger Web-Crawler, der speziell auf LLMs, KI-Agenten und Datenpipelines zugeschnitten ist. Das Projekt ist vollständig Open Source, flexibel und auf Echtzeit-Performance ausgelegt und bietet Entwicklern unübertroffene Geschwindigkeit, Präzision und Bereitstellungsfreundlichkeit.
Kernfunktionen
🤖 Speziell für LLMs entwickelt
- Generiert intelligentes, übersichtliches Markdown, optimiert für RAG- und Feinabstimmungsanwendungen
- Bietet saubere, strukturierte Inhalte, die für die Verarbeitung durch KI-Modelle geeignet sind
- Unterstützt alle LLMs (Open Source und proprietär) für die Extraktion strukturierter Daten
⚡ Blitzschnelle Geschwindigkeit
- Bietet 6x schnellere Ergebnisse mit Echtzeit- und kosteneffizienter Leistung
- Basiert auf einer asynchronen Architektur, die massive Parallelverarbeitung unterstützt
- Speicheradaptiver Scheduler, der die Parallelität dynamisch an den Systemspeicher anpasst
🌐 Flexible Browsersteuerung
- Sitzungsverwaltung, Proxy-Unterstützung und benutzerdefinierte Hooks
- Unterstützt eigene Browser der Benutzer, vollständige Kontrolle, Vermeidung von Bot-Erkennung
- Browser-Profilverwaltung, Speichern von Authentifizierungsstatus, Cookies und Einstellungen
- Unterstützt Chromium, Firefox und WebKit Multi-Browser
🧠 Heuristische Intelligenz
- Verwendet fortschrittliche Algorithmen für eine effiziente Extraktion, wodurch die Abhängigkeit von teuren Modellen reduziert wird
- BM25-Algorithmusfilterung, extrahiert Kerninformationen und entfernt irrelevante Inhalte
- Intelligente Inhaltsbereinigung und Rauschunterdrückung
Hauptfunktionsmodule
📝 Markdown-Generierung
- Sauberes Markdown: Generiert genau formatierte, strukturierte Markdown-Dateien
- Angepasstes Markdown: Basiert auf heuristischer Filterung, entfernt Rauschen und irrelevante Teile
- Zitate und Referenzen: Konvertiert Seitenlinks in nummerierte Referenzlisten mit sauberen Zitaten
- Benutzerdefinierte Strategien: Benutzer können Markdown-Generierungsstrategien erstellen, die auf spezifische Anforderungen zugeschnitten sind
📊 Strukturierte Datenextraktion
- LLM-gesteuerte Extraktion: Unterstützt alle LLMs für die Extraktion strukturierter Daten
- Chunking-Strategien: Ermöglicht Chunking (basierend auf Thema, regulären Ausdrücken, Satzebene) zur gezielten Inhaltsverarbeitung
- Kosinusähnlichkeit: Findet relevante Inhaltsblöcke basierend auf Benutzerabfragen zur semantischen Extraktion
- CSS-Selektor-Extraktion: Verwendet XPath- und CSS-Selektoren für die schnelle Muster-Extraktion
- Schemadefinition: Definiert benutzerdefinierte Schemata, um strukturierte JSON-Daten aus wiederholten Mustern zu extrahieren
🔎 Crawling- und Scraping-Funktionen
- Medienunterstützung: Extrahiert Bilder, Audio, Video und responsive Bildformate
- Dynamisches Crawling: Führt JavaScript aus und wartet auf asynchrone/synchrone dynamische Inhalts-Extraktion
- Screenshot-Funktion: Erfasst während des Crawling-Prozesses Screenshots von Seiten zur Fehlersuche oder Analyse
- Rohdaten-Crawling: Verarbeitet direkt rohes HTML oder lokale Dateien
- Umfassende Link-Extraktion: Extrahiert interne, externe Links und eingebettete iFrame-Inhalte
- Anpassbare Hooks: Definiert in jedem Schritt Hooks, um das Crawling-Verhalten anzupassen
- Caching-Mechanismus: Cacht Daten, um die Geschwindigkeit zu erhöhen und doppelte Abrufe zu vermeiden
- Lazy-Loading-Verarbeitung: Wartet, bis Bilder vollständig geladen sind, um sicherzustellen, dass keine Inhalte aufgrund von Lazy Loading übersehen werden
🚀 Bereitstellung und Integration
- Dockerisierte Einrichtung: Optimierte Docker-Images mit FastAPI-Server zur einfachen Bereitstellung
- Sichere Authentifizierung: Integrierte JWT-Token-Authentifizierung zur Gewährleistung der API-Sicherheit
- API-Gateway: Ein-Klick-Bereitstellung mit sicherer Token-Authentifizierung für API-Workflows
- Skalierbare Architektur: Speziell für die großvolumige Produktion entwickelt, optimiert die Serverleistung
- Cloud-Bereitstellung: Bietet sofort einsatzbereite Bereitstellungskonfigurationen für wichtige Cloud-Plattformen
Installationsanleitung
Python-Paketinstallation
pip install -U crawl4ai
crawl4ai-setup
crawl4ai-doctor
Docker-Bereitstellung
docker pull unclecode/crawl4ai:0.6.0-rN
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN
# webUI:http://localhost:11235/playground
Grundlegende Anwendungsbeispiele
Einfaches Web-Crawling
import asyncio
from crawl4ai import *
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url="https://www.nbcnews.com/business",
)
print(result.markdown)
if __name__ == "__main__":
asyncio.run(main())
Befehlszeilenschnittstelle
crwl https://www.nbcnews.com/business -o markdown
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10
crwl https://www.example.com/products -q "Extract all product prices"
LLM-Strukturierte Datenextraktion
import os
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode, LLMConfig
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from pydantic import BaseModel, Field
class OpenAIModelFee(BaseModel):
model_name: str = Field(..., description="Name of the OpenAI model.")
input_fee: str = Field(..., description="Fee for input token for the OpenAI model.")
output_fee: str = Field(..., description="Fee for output token for the OpenAI model.")
async def main():
browser_config = BrowserConfig(verbose=True)
run_config = CrawlerRunConfig(
word_count_threshold=1,
extraction_strategy=LLMExtractionStrategy(
llm_config = LLMConfig(provider="openai/gpt-4o", api_token=os.getenv('OPENAI_API_KEY')),
schema=OpenAIModelFee.schema(),
extraction_type="schema",
instruction="""From the crawled content, extract all mentioned model names along with their fees for input and output tokens.
Do not miss any models in the entire content. One extracted model JSON format should look like this:
{"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}."""
),
cache_mode=CacheMode.BYPASS,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
result = await crawler.arun(
url='https://openai.com/api/pricing/',
config=run_config
)
print(result.extracted_content)
if __name__ == "__main__":
asyncio.run(main())
Neueste Versionsfunktionen (v0.6.0)
🌍 Weltwahrnehmendes Crawling
Legen Sie Geolokalisierung, Sprache und Zeitzone fest, um authentische, regionalspezifische Inhalte zu erhalten:
run_config = CrawlerRunConfig(
url="https://browserleaks.com/geo",
locale="en-US",
timezone_id="America/Los_Angeles",
geolocation=GeolocationConfig(
latitude=34.0522,
longitude=-118.2437,
accuracy=10.0,
)
)
📊 Tabellen-zu-DataFrame-Extraktion
Extrahieren Sie HTML-Tabellen direkt als CSV oder pandas DataFrame:
results = await crawler.arun(
url="https://coinmarketcap.com/?page=1",
config=crawl_config
)
raw_df = pd.DataFrame()
for result in results:
if result.success and result.media["tables"]:
raw_df = pd.DataFrame(
result.media["tables"][0]["rows"],
columns=result.media["tables"][0]["headers"],
)
break
🚀 Browser-Pooling
Verwenden Sie vorgewärmte Browserinstanzen beim Seitenstart, um Latenz und Speichernutzung zu reduzieren
🔌 MCP-Integration
Verbinden Sie sich über das Modellkontextprotokoll mit KI-Tools wie Claude Code:
claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse
Technische Architektur
Kernkomponenten
- Asynchrone Crawling-Engine: Hochleistungsfähige asynchrone Architektur basierend auf Playwright
- Inhaltsfilterungsstrategien: Verschiedene Filteralgorithmen, einschließlich Trim-Filter und BM25-Filter
- Extraktionsstrategien: Unterstützt CSS-Selektoren, LLM und benutzerdefinierte Extraktionsstrategien
- Markdown-Generator: Intelligente Konvertierung von Inhalten in ein KI-freundliches Markdown-Format
- Browserverwaltung: Vollständige Browser-Lebenszyklusverwaltung und Sitzungssteuerung
Unterstützte Extraktionsmethoden
- CSS-Selektor-Extraktion: Schnelle, präzise Extraktion strukturierter Daten
- LLM-Extraktion: Verwendung großer Sprachmodelle für intelligentes Inhaltsverständnis
- JavaScript-Ausführung: Dynamische Inhaltsverarbeitung und Interaktion
- Reguläre Ausdrücke: Mustererkennung und Textverarbeitung
- XPath-Selektoren: Erweiterte DOM-Elementlokalisierung
Leistungsvorteile
- 6-fache Geschwindigkeitssteigerung: Im Vergleich zu herkömmlichen Crawling-Tools
- Speicheroptimierung: Intelligente Speicherverwaltung und Garbage Collection
- Parallele Verarbeitung: Unterstützt das parallele Crawlen von Tausenden von URLs
- Caching-Mechanismus: Intelligentes Caching reduziert doppelte Anfragen
- Ressourcenverwaltung: Adaptive Ressourcenzuweisung und -beschränkung
Anwendungsbereiche
Datenwissenschaft und Forschung
- Sammlung akademischer Arbeiten und Forschungsdaten
- Marktforschung und Wettbewerbsanalyse
- Social-Media-Data-Mining
KI und maschinelles Lernen
- Sammlung und Vorverarbeitung von Trainingsdaten
- Inhaltsbeschaffung für RAG-Systeme
- Aufbau von Wissensgraphen
Business Intelligence
- Preisüberwachung und -vergleich
- Nachrichten- und Stimmungsüberwachung
- Unternehmensdatenaggregation
Content Management
- Website-Migration und -Backup
- Content-Aggregation und -Verteilung
- SEO-Analyse und -Optimierung
Entwicklungs-Roadmap
- Graph-Crawler: Verwendung von Graphsuchalgorithmen für intelligentes Website-Crawling
- Problemgesteuerter Crawler: Natürliche Sprachsteuerung für Web-Discovery und Inhalts-Extraktion
- Wissensoptimaler Crawler: Maximierung des Wissenserwerbs bei gleichzeitiger Minimierung der Datenextraktion
- Agent-Crawler: Autonomes System für komplexe, mehrstufige Crawling-Operationen
- Automatisierter Mustergenerator: Konvertierung natürlicher Sprache in Extraktionsmuster
- Domänenspezifischer Crawler: Vorkonfigurierte Extraktoren für gängige Plattformen
Community und Support
Crawl4AI verfügt über eine aktive Open-Source-Community, die Unterstützung bietet. Beiträge zum Code, das Melden von Problemen und das Einbringen von Vorschlägen sind willkommen. Das Projekt unterliegt der Apache 2.0-Lizenz, ist vollständig Open Source und kostenlos nutzbar.
Zusammenfassung
Crawl4AI repräsentiert die neuesten Entwicklungen in der Web-Crawling-Technologie, insbesondere im Kontext des KI-Zeitalters. Es bietet nicht nur alle Funktionen herkömmlicher Crawler, sondern ist auch speziell für moderne KI-Anwendungen optimiert, was es zur idealen Wahl für Datenwissenschaftler, KI-Forscher und Entwickler macht. Durch seine Open-Source-Eigenschaften und die aktive Community treibt Crawl4AI die Demokratisierung und Standardisierung der Webdatenextraktion voran.