Last translated: 16 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

🚀🤖 Crawl4AI: Open-source LLM-freundlicher Web-Crawler & Scraper

unclecode%2Fcrawl4ai | Trendshift

GitHub Stars GitHub Forks

PyPI version Python Version Downloads

License Code style: black Security: bandit Contributor Covenant

Crawl4AI ist das #1 Trending-Repository auf GitHub, aktiv gepflegt von einer lebendigen Community. Es bietet blitzschnelles, AI-optimiertes Web-Crawling für LLMs, KI-Agenten und Datenpipelines. Open Source, flexibel und für Echtzeitleistung konzipiert, ermöglicht Crawl4AI Entwicklern unübertroffene Geschwindigkeit, Präzision und einfache Bereitstellung.

✨ Aktuelle Updates v0.6.0 ansehen

🎉 Version 0.6.0 ist jetzt verfügbar! Dieser Release Candidate führt weltbewusstes Crawling mit Geolokalisierung und Locale-Einstellungen ein, Tabellen-zu-DataFrame-Extraktion, Browser-Pooling mit Vorwärmung, Netzwerk- und Konsolenverkehrserfassung, MCP-Integration für KI-Tools und eine komplett überarbeitete Docker-Bereitstellung! Release Notes lesen →

🤓 Meine persönliche Geschichte

Meine Reise mit Computern begann in der Kindheit, als mein Vater, ein Informatiker, mir einen Amstrad-Computer vorstellte. Diese frühen Tage weckten eine Faszination für Technologie, die mich dazu brachte, Informatik zu studieren und mich während meines Postgraduiertenstudiums auf NLP zu spezialisieren. Damals begann ich erstmals mit Web-Crawling, indem ich Tools für Forscher baute, um Publikationen zu organisieren und Informationen aus Veröffentlichungen zu extrahieren – eine herausfordernde, aber lohnende Erfahrung, die meine Fähigkeiten in der Datenextraktion schärfte.

Schneller Vorlauf ins Jahr 2023: Ich arbeitete an einem Tool für ein Projekt und benötigte einen Crawler, um Webseiten in Markdown zu konvertieren. Bei der Suche nach Lösungen fand ich eine angeblich Open-Source-Lösung, die jedoch die Erstellung eines Kontos und die Generierung eines API-Tokens erforderte. Schlimmer noch, es stellte sich als SaaS-Modell heraus, das $16 kostete, und die Qualität entsprach nicht meinen Standards. Frustriert erkannte ich, dass dies ein tieferliegendes Problem war. Dieser Frust versetzte mich in einen Turbo-Ärger-Modus, und ich beschloss, meine eigene Lösung zu bauen. In nur wenigen Tagen entstand Crawl4AI. Zu meiner Überraschung wurde es viral und erhielt Tausende von GitHub-Sternen, wobei es eine globale Community begeisterte.

Ich habe Crawl4AI aus zwei Gründen als Open Source veröffentlicht. Erstens ist es meine Art, der Open-Source-Community etwas zurückzugeben, die mich während meiner gesamten Karriere unterstützt hat. Zweitens glaube ich, dass Daten für alle zugänglich sein sollten, nicht hinter Paywalls verschlossen oder von einigen wenigen monopolisiert. Offener Zugang zu Daten legt den Grundstein für die Demokratisierung der KI, eine Vision, in der Einzelpersonen ihre eigenen Modelle trainieren und die Kontrolle über ihre Informationen behalten können. Diese Bibliothek ist der erste Schritt auf einer größeren Reise, um das beste Open-Source-Datenextraktions- und -generierungstool zu schaffen, das die Welt je gesehen hat – gemeinsam entwickelt von einer leidenschaftlichen Community.

Danke an alle, die dieses Projekt unterstützt, genutzt und Feedback gegeben haben. Eure Ermutigung motiviert mich, noch größer zu träumen. Macht mit, meldet Probleme, reicht PRs ein oder verbreitet die Nachricht. Gemeinsam können wir ein Tool schaffen, das Menschen wirklich befähigt, auf ihre eigenen Daten zuzugreifen und die Zukunft der KI zu gestalten.

🧐 Warum Crawl4AI?

  1. Für LLMs entwickelt: Erzeugt intelligentes, prägnantes Markdown, optimiert für RAG und Fine-Tuning-Anwendungen.
  2. Blitzschnell: Liefert Ergebnisse 6x schneller mit kosteneffizienter Echtzeitleistung.
  3. Flexible Browsersteuerung: Bietet Sitzungsverwaltung, Proxys und benutzerdefinierte Hooks für nahtlosen Datenzugriff.
  4. Heuristische Intelligenz: Verwendet fortschrittliche Algorithmen für effiziente Extraktion und reduziert die Abhängigkeit von teuren Modellen.
  5. Open Source & bereitstellbar: Vollständig Open Source ohne API-Schlüssel – bereit für Docker und Cloud-Integration.
  6. Lebendige Community: Aktiv gepflegt von einer lebendigen Community und dem #1 Trending-Repository auf GitHub.

🚀 Schnellstart

  1. Installiere Crawl4AI:
# Install the package
pip install -U crawl4ai

# For pre release versions
pip install crawl4ai --pre

# Run post-installation setup
crawl4ai-setup

# Verify your installation
crawl4ai-doctor

Falls browserbezogene Probleme auftreten, können sie manuell installiert werden:

python -m playwright install --with-deps chromium
  1. Führe einen einfachen Web-Crawl mit Python aus:
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())
  1. Oder verwende die neue Kommandozeilenschnittstelle:
# Basic crawl with markdown output
crwl https://www.nbcnews.com/business -o markdown

# Deep crawl with BFS strategy, max 10 pages
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

# Use LLM extraction with a specific question
crwl https://www.example.com/products -q "Extract all product prices"

✨ Funktionen

📝 Markdown-Generierung
  • 🧹 Sauberes Markdown: Erzeugt sauberes, strukturiertes Markdown mit genauer Formatierung.
  • 🎯 Optimiertes Markdown: Heuristikbasierte Filterung zur Entfernung von Rauschen und irrelevanten Teilen für KI-freundliche Verarbeitung.
  • 🔗 Zitate und Referenzen: Konvertiert Seitenlinks in eine nummerierte Referenzliste mit sauberen Zitaten.
  • 🛠️ Benutzerdefinierte Strategien: Benutzer können eigene Markdown-Generierungsstrategien für spezifische Anforderungen erstellen.
  • 📚 BM25-Algorithmus: Verwendet BM25-basierte Filterung zur Extraktion von Kerninformationen und Entfernung irrelevanter Inhalte.
📊 Strukturierte Datenextraktion
  • 🤖 LLM-gesteuerte Extraktion: Unterstützt alle LLMs (Open Source und proprietär) für strukturierte Datenextraktion.
  • Chunking-Strategien: Implementiert Chunking (themenbasiert, regex, satzweise) für gezielte Inhaltsverarbeitung.
  • 🌌 Kosinus-Ähnlichkeit: Findet relevante Inhaltsblöcke basierend auf Benutzeranfragen für semantische Extraktion.
  • 🔎 CSS-basierte Extraktion: Schnelle schema-basierte Datenextraktion mit XPath und CSS-Selektoren.
  • 🔧 Schema-Definition: Definiert benutzerdefinierte Schemata für die Extraktion von strukturiertem JSON aus sich wiederholenden Mustern.
🌐 Browser-Integration
  • 🖥️ Verwalteter Browser: Verwendet benutzereigene Browser mit voller Kontrolle, um Bot-Erkennung zu vermeiden.
  • 🔄 Remote-Browsersteuerung: Verbindung zum Chrome Developer Tools Protocol für Remote-Datenextraktion im großen Maßstab.
  • 👤 Browser-Profilierung: Erstellt und verwaltet persistente Profile mit gespeicherten Authentifizierungszuständen, Cookies und Einstellungen.
  • 🔒 Sitzungsverwaltung: Bewahrt Browserzustände und wiederverwendet sie für mehrstufiges Crawling.
  • 🧩 Proxy-Unterstützung: Nahtlose Verbindung zu Proxys mit Authentifizierung für sicheren Zugriff.
  • ⚙️ Vollständige Browserkontrolle: Modifiziert Header, Cookies, User Agents und mehr für maßgeschneiderte Crawling-Setups.
  • 🌍 Multi-Browser-Unterstützung: Kompatibel mit Chromium, Firefox und WebKit.
  • 📐 Dynamische Viewport-Anpassung: Passt den Browser-Viewport automatisch an den Seiteninhalt an, um vollständiges Rendering und Erfassung aller Elemente zu gewährleisten.
🔎 Crawling & Scraping
  • 🖼️ Medienunterstützung: Extrahiert Bilder, Audio, Videos und responsive Bildformate wie srcset und picture.
  • 🚀 Dynamisches Crawling: Führt JS aus und wartet auf asynchrone oder synchrone Inhalte für dynamische Extraktion.
  • 📸 Screenshots: Erfasst Seiten-Screenshots während des Crawlings für Debugging oder Analyse.
  • 📂 Rohdaten-Crawling: Verarbeitet direkt rohes HTML (raw:) oder lokale Dateien (file://).
  • 🔗 Umfassende Linkextraktion: Extrahiert interne, externe Links und eingebettete Iframe-Inhalte.
  • 🛠️ Anpassbare Hooks: Definiert Hooks für jeden Schritt zur Anpassung des Crawling-Verhaltens.
  • 💾 Caching: Speichert Daten für verbesserte Geschwindigkeit und vermeidet redundante Abfragen.
  • 📄 Metadatenextraktion: Ruft strukturierte Metadaten von Webseiten ab.
  • 📡 Iframe-Inhaltsextraktion: Nahtlose Extraktion aus eingebetteten Iframe-Inhalten.
  • 🕵️ Lazy-Load-Handling: Wartet auf vollständiges Laden von Bildern, um sicherzustellen, dass keine Inhalte aufgrund von Lazy Loading verpasst werden.
  • 🔄 Ganzseitiges Scannen: Simuliert Scrollen, um alle dynamischen Inhalte zu laden und zu erfassen, perfekt für Seiten mit unendlichem Scroll.
🚀 Bereitstellung
  • 🐳 Dockerisiertes Setup: Optimiertes Docker-Image mit FastAPI-Server für einfache Bereitstellung.
  • 🔑 Sichere Authentifizierung: Integrierte JWT-Token-Authentifizierung für API-Sicherheit.
  • 🔄 API-Gateway: Ein-Klick-Bereitstellung mit sicherer Token-Authentifizierung für API-basierte Workflows.
  • 🌐 Skalierbare Architektur: Für Massenproduktion und optimierte Serverleistung konzipiert.
  • ☁️ Cloud-Bereitstellung: Bereit-zu-deploy-Konfigurationen für große Cloud-Plattformen.
🎯 Zusätzliche Funktionen
  • 🕶️ Stealth-Modus: Vermeidet Bot-Erkennung durch Nachahmung echter Nutzer.
  • 🏷️ Tag-basierte Inhaltsextraktion: Verfeinert Crawling basierend auf benutzerdefinierten Tags, Headern oder Metadaten.
  • 🔗 Linkanalyse: Extrahiert und analysiert alle Links für detaillierte Datenexploration.
  • 🛡️ Fehlerbehandlung: Robuste Fehlerverwaltung für nahtlose Ausführung.
  • 🔐 CORS & statisches Servieren: Unterstützt dateisystembasiertes Caching und Cross-Origin-Anfragen.
  • 📖 Klar dokumentiert: Vereinfachte und aktualisierte Anleitungen für Onboarding und fortgeschrittene Nutzung.
  • 🙌 Community-Anerkennung: Würdigt Mitwirkende und Pull Requests für Transparenz.

Jetzt ausprobieren!

✨ Experimentiere mit diesem Open In Colab

✨ Besuche unsere Dokumentationswebsite

Installation 🛠️

Crawl4AI bietet flexible Installationsoptionen für verschiedene Anwendungsfälle. Es kann als Python-Paket installiert oder mit Docker verwendet werden.

🐍 Mit pip

Wähle die Installationsoption, die am besten zu deinen Anforderungen passt:

Grundinstallation

Für grundlegende Web-Crawling- und Scraping-Aufgaben:

pip install crawl4ai
crawl4ai-setup # Setup the browser

Standardmäßig wird die asynchrone Version von Crawl4AI installiert, die Playwright für Web-Crawling verwendet.

👉 Hinweis: Bei der Installation von Crawl4AI sollte crawl4ai-setup Playwright automatisch installieren und einrichten. Falls jedoch Playwright-bezogene Fehler auftreten, kann es manuell mit einer dieser Methoden installiert werden:

  1. Über die Kommandozeile:

    playwright install
    
  2. Falls das nicht funktioniert, versuche diesen spezifischeren Befehl:

    python -m playwright install chromium
    

Diese zweite Methode hat sich in einigen Fällen als zuverlässiger erwiesen.


Installation mit synchroner Version

Die synchrone Version ist veraltet und wird in zukünftigen Versionen entfernt. Falls die synchrone Version mit Selenium benötigt wird:

pip install crawl4ai[sync]

Entwicklungsinstallation

Für Mitwirkende, die den Quellcode modifizieren möchten:

git clone https://github.com/unclecode/crawl4ai.git
cd crawl4ai
pip install -e .                    # Basic installation in editable mode

Optionale Features installieren:

pip install -e ".[torch]"           # With PyTorch features
pip install -e ".[transformer]"     # With Transformer features
pip install -e ".[cosine]"          # With cosine similarity features
pip install -e ".[sync]"            # With synchronous crawling (Selenium)
pip install -e ".[all]"             # Install all optional features
🐳 Docker-Bereitstellung

🚀 Jetzt verfügbar! Unsere komplett neu gestaltete Docker-Implementierung ist da! Diese neue Lösung macht die Bereitstellung effizienter und nahtloser denn je.

Neue Docker-Funktionen

Die neue Docker-Implementierung beinhaltet:

  • Browser-Pooling mit Seitenvorwärmung für schnellere Antwortzeiten
  • Interaktiven Playground zum Testen und Generieren von Anfragecode
  • MCP-Integration für direkte Verbindung zu KI-Tools wie Claude Code
  • Umfassende API-Endpunkte inklusive HTML-Extraktion, Screenshots, PDF-Generierung und JavaScript-Ausführung
  • Multi-Architektur-Unterstützung mit automatischer Erkennung (AMD64/ARM64)
  • Optimierte Ressourcen mit verbessertem Speichermanagement

Erste Schritte

# Pull and run the latest release candidate
docker pull unclecode/crawl4ai:0.6.0-rN # Use your favorite revision number
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN # Use your favorite revision number

# Visit the playground at http://localhost:11235/playground

Für vollständige Dokumentation siehe unseren Docker-Bereitstellungsleitfaden.


Schnelltest

Führe einen Schnelltest durch (funktioniert für beide Docker-Optionen):

import requests

# Submit a crawl job
response = requests.post(
    "http://localhost:11235/crawl",
    json={"urls": "https://example.com", "priority": 10}
)
task_id = response.json()["task_id"]

# Continue polling until the task is complete (status="completed")
result = requests.get(f"http://localhost:11235/task/{task_id}")

Weitere Beispiele findest du in unseren Docker-Beispielen. Für erweiterte Konfiguration, Umgebungsvariablen und Nutzungsbeispiele siehe unseren Docker-Bereitstellungsleitfaden.

🔬 Erweiterte Nutzungsbeispiele 🔬

Die Projektstruktur kann im Verzeichnis https://github.com/unclecode/crawl4ai/docs/examples eingesehen werden. Dort finden sich verschiedene Beispiele; hier werden einige beliebte Beispiele geteilt.

📝 Heuristische Markdown-Generierung mit sauberem und optimiertem Markdown
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.content_filter_strategy import PruningContentFilter, BM25ContentFilter
from crawl4ai.markdown_generation_strategy import DefaultMarkdownGenerator

async def main():
    browser_config = BrowserConfig(
        headless=True,  
        verbose=True,
    )
    run_config = CrawlerRunConfig(
        cache_mode=CacheMode.ENABLED,
        markdown_generator=DefaultMarkdownGenerator(
            content_filter=PruningContentFilter(threshold=0.48, threshold_type="fixed", min_word_threshold=0)
        ),
        # markdown_generator=DefaultMarkdownGenerator(
        #     content_filter=BM25ContentFilter(user_query="WHEN_WE_FOCUS_BASED_ON_A_USER_QUERY", bm25_threshold=1.0)
        # ),
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result = await crawler.arun(
            url="https://docs.micronaut.io/4.7.6/guide/",
            config=run_config
        )
        print(len(result.markdown.raw_markdown))
        print(len(result.markdown.fit_markdown))

if __name__ == "__main__":
    asyncio.run(main())
🖥️ JavaScript-Ausführung & strukturierte Datenextraktion ohne LLMs
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.extraction_strategy import JsonCssExtractionStrategy
import json

async def main():
    schema = {
    "name": "KidoCode Courses",
    "baseSelector": "section.charge-methodology .w-tab-content > div",
    "fields": [
        {
            "name": "section_title",
            "selector": "h3.heading-50",
            "type": "text",
        },
        {
            "name": "section_description",
            "selector": ".charge-content",
            "type": "text",
        },
        {
            "name": "course_name",
            "selector": ".text-block-93",
            "type": "text",
        },
        {
            "name": "course_description",
            "selector": ".course-content-text",
            "type": "text",
        },
        {
            "name": "course_icon",
            "selector": ".image-92",
            "type": "attribute",
            "attribute": "src"
        }
    }
}

    extraction_strategy = JsonCssExtractionStrategy(schema, verbose=True)

    browser_config = BrowserConfig(
        headless=False,
        verbose=True
    )
    run_config = CrawlerRunConfig(
        extraction_strategy=extraction_strategy,
        js_code=["""(async () => {const tabs = document.querySelectorAll("section.charge-methodology .tabs-menu-3 > div");for(let tab of tabs) {tab.scrollIntoView();tab.click();await new Promise(r => setTimeout(r, 500));}})();"""],
        cache_mode=CacheMode.BYPASS
    )
        
    async with AsyncWebCrawler(config=browser_config) as crawler:
        
        result = await crawler.arun(
            url="https://www.kidocode.com/degrees/technology",
            config=run_config
        )

        companies = json.loads(result.extracted_content)
        print(f"Successfully extracted {len(companies)} companies")
        print(json.dumps(companies[0], indent=2))


if __name__ == "__main__":
    asyncio.run(main())
📚 Strukturierte Datenextraktion mit LLMs
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(
            # Here you can use any provider that Litellm library supports, for instance: ollama/qwen2
            # provider="ollama/qwen2", api_token="no-token", 
            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())
🤖 Verwendung des eigenen Browsers mit benutzerdefiniertem Profil
import os, sys
from pathlib import Path
import asyncio, time
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode

async def test_news_crawl():
    # Create a persistent user data directory
    user_data_dir = os.path.join(Path.home(), ".crawl4ai", "browser_profile")
    os.makedirs(user_data_dir, exist_ok=True)

    browser_config = BrowserConfig(
        verbose=True,
        headless=True,
        user_data_dir=user_data_dir,
        use_persistent_context=True,
    )
    run_config = CrawlerRunConfig(
        cache_mode=CacheMode.BYPASS
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        url = "ADDRESS_OF_A_CHALLENGING_WEBSITE"
        
        result = await crawler.arun(
            url,
            config=run_config,
            magic=True,
        )
        
        print(f"Successfully crawled {url}")
        print(f"Content length: {len(result.markdown)}")

✨ Aktuelle Updates

Version 0.6.0 Release-Highlights

  • 🌎 Weltbewusstes Crawling: Setze Geolokalisierung, Sprache und Zeitzone für authentische, regionsspezifische Inhalte:

      crun_cfg = CrawlerRunConfig(
          url="https://browserleaks.com/geo",          # Testseite, die deinen Standort anzeigt
          locale="en-US",                              # Accept-Language & UI-Locale
          timezone_id="America/Los_Angeles",           # JS Date()/Intl-Zeitzone
          geolocation=GeolocationConfig(                 # GPS-Koordinaten überschreiben
              latitude=34.0522,
              longitude=-118.2437,
              accuracy=10.0,
          )
      )
    
  • 📊 Tabellen-zu-DataFrame-Extraktion: Extrahiere HTML-Tabellen direkt in CSV oder pandas DataFrames:

      crawler = AsyncWebCrawler(config=browser_config)
      await crawler.start()
    
      try:
          # Scraping-Parameter einrichten
          crawl_config = CrawlerRunConfig(
              table_score_threshold=8,  # Strenge Tabellenerkennung
          )
    
          # Marktdatenextraktion ausführen
          results: List[CrawlResult] = await crawler.arun(
              url="https://coinmarketcap.com/?page=1", config=crawl_config
          )
    
          # Ergebnisse verarbeiten
          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
          print(raw_df.head())
    
      finally:
          await crawler.stop()
    
  • 🚀 Browser-Pooling: Seiten starten mit vorgewärmten Browser-Instanzen für geringere Latenz und Speichernutzung

  • 🕸️ Netzwerk- und Konsolenverkehrserfassung: Vollständige Verkehrsprotokolle und MHTML-Snapshots für Debugging:

    crawler_config = CrawlerRunConfig(
        capture_network=True,
        capture_console=True,
        mhtml=True
    )
    
  • 🔌 MCP-Integration: Verbindung zu KI-Tools wie Claude Code über das Model Context Protocol

    # Crawl4AI zu Claude Code hinzufügen
    claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse
    
  • 🖥️ Interaktiver Playground: Teste Konfigurationen und generiere API-Anfragen mit der eingebauten Weboberfläche unter http://localhost:11235//playground

  • 🐳 Überarbeitete Docker-Bereitstellung: Streamlined Multi-Architektur-Docker-Image mit verbesserter Ressourceneffizienz

  • 📱 Multi-Stage-Build-System: Optimiertes Dockerfile mit plattformspezifischen Leistungsverbesserungen

Lies die vollständigen Details in unseren 0.6.0 Release Notes oder schau in das CHANGELOG.

Vorherige Version: 0.5.0 Hauptversion-Highlights

  • 🚀 Deep Crawling System: Erkundung von Websites über initiale URLs hinaus mit BFS-, DFS- und BestFirst-Strategien
  • ⚡ Speicher-adaptiver Dispatcher: Dynamische Anpassung der Parallelität basierend auf dem Systemarbeitsspeicher
  • 🔄 Multiple Crawling-Strategien: Browser-basierte und leichtgewichtige HTTP-only-Crawler
  • 💻 Kommandozeileninterface: Neue crwl CLI für bequemen Terminalzugriff
  • 👤 Browser Profiler: Erstellung und Verwaltung persistenter Browser-Profile
  • 🧠 Crawl4AI Coding Assistant: KI-gestützter Programmierassistent
  • 🏎️ LXML Scraping-Modus: Schnelles HTML-Parsing mit der lxml-Bibliothek
  • 🌐 Proxy-Rotation: Integrierte Unterstützung für Proxy-Wechsel
  • 🤖 LLM Content Filter: Intelligente Markdown-Generierung mittels LLMs
  • 📄 PDF-Verarbeitung: Extraktion von Text, Bildern und Metadaten aus PDF-Dateien

Lesen Sie die vollständigen Details in unseren 0.5.0 Release Notes.

Versionsnummerierung in Crawl4AI

Crawl4AI folgt den standardmäßigen Python-Versionsnummerierungskonventionen (PEP 440), um Nutzern das Verständnis der Stabilität und Features jeder Version zu erleichtern.

Erklärung der Versionsnummern

Unsere Versionsnummern folgen diesem Muster: MAJOR.MINOR.PATCH (z.B. 0.4.3)

Pre-release-Versionen

Wir verwenden verschiedene Suffixe, um Entwicklungsstadien anzuzeigen:

  • dev (0.4.3dev1): Entwicklungsversionen, instabil
  • a (0.4.3a1): Alpha-Versionen, experimentelle Features
  • b (0.4.3b1): Beta-Versionen, featurekomplett aber benötigt Tests
  • rc (0.4.3): Release-Kandidaten, potenzielle finale Version

Installation

  • Reguläre Installation (stabile Version):

    pip install -U crawl4ai
    
  • Pre-release-Versionen installieren:

    pip install crawl4ai --pre
    
  • Spezifische Version installieren:

    pip install crawl4ai==0.4.3b1
    

Warum Pre-releases?

Wir nutzen Pre-releases, um:

  • Neue Features in realen Szenarien zu testen
  • Feedback vor finalen Releases einzuholen
  • Stabilität für Produktionsnutzer sicherzustellen
  • Early Adopters das Ausprobieren neuer Features zu ermöglichen

Für Produktionsumgebungen empfehlen wir die stabile Version. Zum Testen neuer Features können Sie Pre-releases mit dem --pre-Flag nutzen.

📖 Dokumentation & Roadmap

🚨 Dokumentationsupdate-Hinweis: Nächste Woche unterziehen wir unsere Dokumentation einer größeren Überarbeitung, um aktuelle Updates und Verbesserungen widerzuspiegeln. Bleiben Sie dran für eine umfassendere und aktuellere Anleitung!

Für aktuelle Dokumentation, inklusive Installationsanleitungen, erweiterten Features und API-Referenz, besuchen Sie unsere Dokumentationswebsite.

Um unsere Entwicklungspläne und kommende Features einzusehen, besuchen Sie unseren Roadmap.

📈 Entwicklungs-TODOs
  • 0. Graph Crawler: Intelligente Website-Durchquerung mit Graph-Suchalgorithmen für umfassende Extraktion verschachtelter Seiten
  • 1. Frage-basierter Crawler: Natürlichsprachlich gesteuerte Web-Entdeckung und Inhalts-Extraktion
  • 2. Wissens-optimaler Crawler: Intelligentes Crawling, das Wissen maximiert während Datenextraktion minimiert wird
  • 3. Agentischer Crawler: Autonomes System für komplexe mehrstufige Crawling-Operationen
  • 4. Automatisierter Schema-Generator: Umwandlung natürlicher Sprache in Extraktions-Schemata
  • 5. Domänenspezifische Scraper: Vorkonfigurierte Extraktoren für gängige Plattformen (akademisch, E-Commerce)
  • 6. Web-Embedding-Index: Semantische Suchinfrastruktur für gecrawlte Inhalte
  • 7. Interaktiver Playground: Web-UI zum Testen, Vergleichen von Strategien mit KI-Unterstützung
  • 8. Performance-Monitor: Echtzeit-Einblicke in Crawler-Operationen
  • 9. Cloud-Integration: One-Click-Deployment-Lösungen über Cloud-Anbieter
  • 10. Sponsorenprogramm: Strukturiertes Unterstützungssystem mit abgestuften Vorteilen
  • 11. Lehrinhalte: "How to Crawl"-Videoserie und interaktive Tutorials

🤝 Mitwirken

Wir freuen uns über Beiträge aus der Open-Source-Community. Lesen Sie unsere Beitragsrichtlinien für weitere Informationen.

Ich helfe bei der Anpassung des Lizenzabschnitts mit Badges. Für den Halbton-Effekt hier eine Version damit:

Hier der aktualisierte Lizenzabschnitt:

📄 Lizenz & Zuschreibung

Dieses Projekt ist lizenziert unter der Apache License 2.0 mit einer erforderlichen Zuschreibungsklausel. Siehe die Apache 2.0 Lizenz für Details.

Zuschreibungserfordernisse

Bei Nutzung von Crawl4AI müssen Sie eine der folgenden Zuschreibungsmethoden einbeziehen:

1. Badge-Zuschreibung (Empfohlen)

Fügen Sie eines dieser Badges zu Ihrer README, Dokumentation oder Website hinzu:

ThemeBadge
Disco Theme (Animiert)Powered by Crawl4AI
Night Theme (Dunkel mit Neon)Powered by Crawl4AI
Dark Theme (Klassisch)Powered by Crawl4AI
Light Theme (Klassisch)Powered by Crawl4AI

HTML-Code zum Hinzufügen der Badges:

<!-- Disco Theme (Animated) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-disco.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Night Theme (Dark with Neon) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-night.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Dark Theme (Classic) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-dark.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Light Theme (Classic) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-light.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Simple Shield Badge -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://img.shields.io/badge/Powered%20by-Crawl4AI-blue?style=flat-square" alt="Powered by Crawl4AI"/>
</a>

2. Text-Zuschreibung

Fügen Sie diese Zeile zu Ihrer Dokumentation hinzu:

This project uses Crawl4AI (https://github.com/unclecode/crawl4ai) for web data extraction.

📚 Zitierung

Wenn Sie Crawl4AI in Ihrer Forschung oder Ihrem Projekt nutzen, zitieren Sie bitte:

@software{crawl4ai2024,
  author = {UncleCode},
  title = {Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub Repository},
  howpublished = {\url{https://github.com/unclecode/crawl4ai}},
  commit = {Please use the commit hash you're working with}
}

Text-Zitierformat:

UncleCode. (2024). Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper [Computer software]. 
GitHub. https://github.com/unclecode/crawl4ai

📧 Kontakt

Bei Fragen, Anregungen oder Feedback können Sie uns gerne kontaktieren:

Viel Spaß beim Crawlen! 🕸️🚀

🗾 Mission

Unsere Mission ist es, den Wert persönlicher und unternehmerischer Daten freizusetzen, indem wir digitale Fußabdrücke in strukturierte, handelbare Assets verwandeln. Crawl4AI befähigt Individuen und Organisationen mit Open-Source-Tools zur Extraktion und Strukturierung von Daten, um eine gemeinsame Datenökonomie zu fördern.

Wir stellen uns eine Zukunft vor, in der KI durch echtes menschliches Wissen betrieben wird, wodurch Datenproduzenten direkt von ihren Beiträgen profitieren. Durch die Demokratisierung von Daten und die Ermöglichung ethischen Teilens legen wir den Grundstein für authentischen KI-Fortschritt.

🔑 Schlüsselchancen
  • Datenkapitalisierung: Digitale Fußabdrücke in messbare, wertvolle Assets verwandeln.
  • Authentische KI-Daten: KI-Systeme mit echten menschlichen Erkenntnissen versorgen.
  • Gemeinschaftsökonomie: Einen fairen Datenmarktplatz schaffen, der Datenproduzenten nützt.
🚀 Entwicklungspfad
  1. Open-Source-Tools: Gemeinschaftsgetriebene Plattformen für transparente Datenextraktion.
  2. Strukturierung digitaler Assets: Tools zur Organisation und Bewertung digitalen Wissens.
  3. Ethischer Datenmarktplatz: Eine sichere, faire Plattform zum Austausch strukturierter Daten.

Für mehr Details siehe unsere vollständige Missionserklärung.

Star History

Star History Chart