AnyCrawl hilft Ihnen dabei, unstrukturierte Webseiten in sauberes Markdown oder JSON für LLM-Anwendungen umzuwandeln. Dieses Tutorial zeigt, wie Sie AnyCrawl mit Atlas Cloud als Modell-API-Quelle koppeln, eine einzelne Projektseite scrapen, strukturierte Felder extrahieren und dieses Muster anschließend auf Crawling- und Such-Workflows skalieren.
Die meisten Tutorials zum Thema Web-Scraping enden beim "Download des HTML". Für KI-Anwendungen ist das meist der Punkt, an dem die eigentliche Arbeit erst beginnt. Rohdaten von Webseiten enthalten Kopf- und Fußzeilen, Seitenleisten, Cookie-Banner, wiederkehrende Links und JavaScript-gerenderte Inhalte. Was Ihr Modell tatsächlich benötigt, ist eine stabile Datenschnittstelle: sauberen Text, wenn Sie Kontext benötigen, oder typisiertes JSON, wenn Sie spezifische Felder brauchen.
Das ist das nützliche mentale Modell für AnyCrawl. Es handelt sich um einen Node.js-/TypeScript-Crawler und -Scraper, der darauf ausgelegt ist, Webseiten in LLM-fähige Daten zu verwandeln. Er unterstützt Single-Page-Scraping, Site-Crawling, SERP-Sammlung, Multi-Threading-/Multi-Prozess-Workloads sowie LLM-gestützte JSON-Extraktion.
Was wir bauen werden
Wir erstellen einen kleinen „Projekt-Recherche-Extraktor“.
Input:
plaintext1Eine URL einer öffentlichen Projektseite oder Dokumentation
Output:
plaintext1{ 2 "project_name": "AnyCrawl", 3 "one_sentence_summary": "...", 4 "core_features": ["..."], 5 "best_for": ["..."], 6 "input_types": ["url", "search query"], 7 "output_formats": ["markdown", "json"], 8 "evidence_urls": ["..."] 9}
Das Beispiel nutzt drei Funktionen von AnyCrawl:
td {white-space:nowrap;border:0.5pt solid #dee0e3;font-size:10pt;font-style:normal;font-weight:normal;vertical-align:middle;word-break:normal;word-wrap:normal;}
| Bedarf | AnyCrawl-Funktion | Warum das wichtig ist |
| Eine Seite extrahieren | /v1/scrape | Bester Ausgangspunkt, um eine URL in Markdown oder JSON zu verwandeln |
| Viele Seiten extrahieren | /v1/crawl | Nützlich für Dokumentationsseiten, Produktseiten, Blogs und Hilfecenter |
| Seiten zuerst finden | /v1/search | Nützlich, wenn Sie SERP-Ergebnisse benötigen, bevor Sie URLs scrapen |
| Stabile Felder erzwingen | JSON-Modus | Nützlich, wenn Ihre nachgelagerte App typisierte Ausgaben benötigt, nicht nur Text |
Die Scrape-API von AnyCrawl konvertiert eine URL in LLM-fähige strukturierte Daten und kann Markdown, HTML, Text, Screenshots, rohes HTML, JSON, Zusammenfassungen und Links zurückgeben. Die Dokumentation beschreibt Scrape als synchron, sodass für eine einzelne Seite keine Polling-Schleife erforderlich ist.
Schritt-für-Schritt: AnyCrawl mit Atlas Cloud ausführen und Webseiten in JSON extrahieren
In diesem Tutorial hosten wir AnyCrawl selbst mit Docker, setzen Atlas Cloud als Modell-API-Provider für die Extraktion ein und rufen dann den lokalen AnyCrawl-Server auf, um eine Webseite in strukturiertes JSON zu verwandeln.
Hinweis: Dieses Tutorial ist für macOS- und Linux-Terminalumgebungen geschrieben.
Schritt 1: Einen sauberen Projektordner erstellen
Öffnen Sie Ihr Terminal und erstellen Sie einen kleinen Ordner für diese Demo.
plaintext1mkdir anycrawl-atlas-demo 2cd anycrawl-atlas-demo
Dieser Ordner enthält nur die Umgebungsdatei und den Request-Body, den wir zum Testen der API verwenden.
Schritt 2: Einen Atlas Cloud API-Key abrufen
Gehen Sie zur Atlas Cloud-Konsole, öffnen Sie die Seite für API-Keys, klicken Sie auf Create API Key, kopieren Sie den Key und speichern Sie ihn sicher. Atlas Cloud weist darauf hin, dass der Key nur einmal angezeigt wird, speichern Sie ihn also an einem sicheren Ort.

Halten Sie den Key geheim. Fügen Sie ihn nicht in ein öffentliches GitHub-Repository, einen Entwurf für einen öffentlichen Artikel oder einen Screenshot ein.
Schritt 3: Die .env-Datei erstellen
Erstellen Sie eine .env-Datei im aktuellen Ordner:
plaintext1cat > .env <<'EOF' 2NODE_ENV=production 3ANYCRAWL_API_PORT=8080 4ANYCRAWL_HEADLESS=true 5ANYCRAWL_API_AUTH_ENABLED=false 6 7ATLASCLOUD_BASE_URL=https://api.atlascloud.ai/v1 8ATLASCLOUD_API_KEY=YOUR_ATLASCLOUD_API_KEY 9DEFAULT_LLM_MODEL=atlascloud/deepseek-v4 10DEFAULT_EXTRACT_MODEL=atlascloud/deepseek-v4 11EOF
Ersetzen Sie YOUR_ATLASCLOUD_API_KEY durch Ihren echten Key.
Dies ist der richtige Ort, um den Modell-Provider zu konfigurieren. Der Scrape-Request selbst sollte sich auf die URL, das Ausgabeformat und das JSON-Schema konzentrieren. Das Modell-Routing gehört in die AnyCrawl-Server-Umgebung, da AnyCrawl der Dienst ist, der den LLM-gestützten Extraktionsschritt ausführt.
Schritt 4: AnyCrawl mit Docker starten
Hinweis: Stellen Sie unter macOS sicher, dass Docker Desktop installiert ist und läuft, bevor Sie AnyCrawl starten. Verwenden Sie für Apple Silicon Macs auto oder playwright anstelle von puppeteer, es sei denn, Sie führen explizit das amd64-Image aus.
Starten Sie den All-in-One AnyCrawl-Container und mounten Sie die .env-Datei hinein.
plaintext1docker run -d \ 2 --name anycrawl-atlas-demo \ 3 -p 8080:8080 \ 4 -v "$(pwd)/.env:/usr/src/app/.env:ro" \ 5 ghcr.io/any4ai/anycrawl:latest
Überprüfen Sie, ob der Dienst läuft:
plaintext1curl http://localhost:8080/health
Die Docker-Dokumentation verwendet Port 8080 für lokale Bereitstellungen und zeigt /health als Verifizierungs-Endpunkt.
Schritt 5: Zuerst einen einfachen Scrape-Request testen
Bevor Sie JSON anfordern, testen Sie, ob AnyCrawl eine Seite lesen und Markdown zurückgeben kann.
plaintext1curl -X POST "http://localhost:8080/v1/scrape" \ 2 -H "Content-Type: application/json" \ 3 -d '{ 4 "url": "https://github.com/any4ai/AnyCrawl", 5 "engine": "auto", 6 "formats": ["markdown"], 7 "only_main_content": true 8 }'
Die Scrape-API von AnyCrawl verwandelt eine URL in strukturierte, LLM-fähige Daten. Sie unterstützt Engines wie auto, cheerio, playwright und puppeteer sowie Ausgabeformate wie markdown, html, text, json, summary und links.
Für diesen ersten Request reicht markdown aus. Sie prüfen damit, ob der Seiteninhalt sichtbar ist, bevor Sie das Modell bitten, strukturierte Felder zu extrahieren.
Schritt 6: Den JSON-Extraktions-Request erstellen
Erstellen Sie nun einen Request-Body, der AnyCrawl auffordert, ein strukturiertes Projektprofil zu extrahieren.
plaintext1cat > scrape-project.json <<'EOF' 2{ 3 "url": "https://github.com/any4ai/AnyCrawl", 4 "engine": "auto", 5 "formats": ["markdown", "json"], 6 "only_main_content": true, 7 "extract_source": "markdown", 8 "json_options": { 9 "schema_name": "open_source_project_profile", 10 "schema_description": "A structured profile of an open-source project based only on the visible page content.", 11 "schema": { 12 "type": "object", 13 "properties": { 14 "project_name": { 15 "type": "string" 16 }, 17 "one_sentence_summary": { 18 "type": "string" 19 }, 20 "core_features": { 21 "type": "array", 22 "items": { 23 "type": "string" 24 } 25 }, 26 "best_for": { 27 "type": "array", 28 "items": { 29 "type": "string" 30 } 31 }, 32 "supported_tasks": { 33 "type": "array", 34 "items": { 35 "type": "string" 36 } 37 }, 38 "developer_setup_notes": { 39 "type": "array", 40 "items": { 41 "type": "string" 42 } 43 } 44 }, 45 "required": [ 46 "project_name", 47 "one_sentence_summary", 48 "core_features" 49 ] 50 }, 51 "user_prompt": "Extract only facts that are visible on the page. Do not guess. Summarize the project for a developer who wants to use web data in an AI application." 52 } 53} 54EOF
Ein häufiger Fehler: Wenn Sie json_options verwenden, müssen Sie "json" in formats aufnehmen; andernfalls enthält die Antwort keine extrahierten JSON-Daten. Der JSON-Modus von AnyCrawl unterstützt Extraktion nur per Prompt, nur per Schema oder beides. Für dieses Tutorial verwenden wir beides, da es sowohl eine Kontrolle der Felder als auch eine Anleitung für die Extraktion bietet.
Schritt 7: Die JSON-Extraktion ausführen
Senden Sie den Request an Ihren lokalen AnyCrawl-Server:
plaintext1curl -X POST "http://localhost:8080/v1/scrape" \ 2 -H "Content-Type: application/json" \ 3 -d @scrape-project.json
Wenn alles korrekt konfiguriert ist, sollte die Antwort ein erfolgreiches Scrape-Ergebnis sowie das extrahierte JSON gemäß Ihrem definierten Schema enthalten.
Damit ist der Workflow vollständig:
plaintext1GitHub-Projektseite 2→ lokaler AnyCrawl Scrape-API 3→ Markdown-Extraktion 4→ LLM-gestützte JSON-Extraktion 5→ strukturiertes Projektprofil
Wichtig ist, dass der Request den Modell-Provider niemals direkt aufruft. AnyCrawl handhabt den Scrape- und Extraktions-Workflow, während die Modell-API-Quelle bereits auf Server-Ebene konfiguriert ist.
Schritt 8: Eine JavaScript-lastige Seite ausprobieren, falls Markdown leer erscheint
Wenn das Markdown-Ergebnis zu kurz oder leer ist oder sichtbare Seiteninhalte fehlen, stellen Sie die Engine auf playwright um.
plaintext1{ 2 "url": "https://example.com", 3 "engine": "playwright", 4 "formats": ["markdown", "json"], 5 "only_main_content": true, 6 "json_options": { 7 "user_prompt": "Extract the main topic, key facts, and important links from this page." 8 } 9}
Die Dokumentation von AnyCrawl beschreibt cheerio als schnell für statisches HTML, playwright als besser für JavaScript-gerenderte Seiten und auto als Allzweck-Option, die die Engine automatisch wählen kann.
Schritt 9: Den Demo-Container stoppen und aufräumen
Wenn Sie mit dem Testen fertig sind, stoppen Sie den Container:
plaintext1docker stop anycrawl-atlas-demo 2docker rm anycrawl-atlas-demo
Sie können denselben Workflow später neu starten, indem Sie den Docker-Befehl erneut in dem Ordner ausführen, der Ihre .env-Datei enthält.
Was Sie gerade gebaut haben
Sie verfügen jetzt über einen lokalen AnyCrawl-Dienst, der eine öffentliche Webseite scrapen, in Markdown bereinigen und typisiertes JSON durch einen Schema-gesteuerten LLM-Workflow extrahieren kann. Die Einrichtung hält den Crawler, das Extraktionsmodell und die App-Ausgabe in der richtigen Reihenfolge: erst die Webseite, dann der strukturierte Inhalt, zuletzt die App-Integration.
FAQ
Wofür wird AnyCrawl verwendet?
AnyCrawl wird verwendet, um Webseiten, Websites und Suchergebnisse in LLM-fähige Daten wie Markdown und strukturiertes JSON umzuwandeln. Es unterstützt Single-Page-Scraping, Full-Site-Crawling, SERP-Sammlung und LLM-gestützte JSON-Extraktion, was es nützlich für RAG-Apps, KI-Agenten, Recherche-Tools und interne Datenpipelines macht.
Wie extrahiere ich JSON von einer Webseite mit AnyCrawl?
Verwenden Sie /v1/scrape, fügen Sie "json" zu formats hinzu und übergeben Sie json_options mit einem Prompt, einem Schema oder beidem. Die Dokumentation zum JSON-Modus von AnyCrawl weist ausdrücklich darauf hin, dass die Antwort keine extrahierten JSON-Daten enthält, wenn Sie zwar json_options verwenden, aber vergessen, "json" in formats anzugeben.
Wie verwende ich Atlas Cloud mit AnyCrawl?
Verwenden Sie Atlas Cloud als OpenAI-kompatiblen LLM-Provider in der AnyCrawl-Server-Umgebung, nicht innerhalb jedes einzelnen Scrape-Requests. Die Dokumentation von Atlas Cloud beschreibt ihren LLM-Endpunkt als OpenAI-kompatibel mit der Basis-URL https://api.atlascloud.ai/v1, während das Provider-Setup von AnyCrawl Umgebungsvariablen wie ATLASCLOUD_BASE_URL, ATLASCLOUD_API_KEY und Standard-Einstellungen für das Extraktionsmodell nutzt.
Kann AnyCrawl eine gesamte Website crawlen?
Ja, AnyCrawl kann eine Website über /v1/crawl crawlen, was einen asynchronen Crawl-Job erstellt. Die Crawl-API ermöglicht es Ihnen, den Umfang mit Optionen wie max_depth, limit, include_paths und exclude_paths zu steuern, den Crawl-Job abzufragen und paginierte Ergebnisse abzurufen.
Kann AnyCrawl Google-Suchergebnisse scrapen?
Ja, AnyCrawl enthält eine Such-API, um strukturierte SERP-Ergebnisse zu sammeln, bevor ausgewählte URLs gescrapt werden. Die Such-API unterstützt Parameter wie query, pages, limit, lang, country und timeRange, was nützlich ist, wenn Ihr KI-Workflow mit einer Rechercheanfrage statt einer bekannten URL beginnt.
Ist AnyCrawl besser als Firecrawl oder Crawl4AI?
Nicht universell; es kommt auf Ihre Bereitstellungs- und Workflow-Anforderungen an. AnyCrawl eignet sich gut für dieses Tutorial, da wir einen lokalen Docker-Dienst, eine Modell-Provider-Konfiguration auf Server-Ebene und einen einfachen /v1/scrape-zu-JSON-Workflow wünschen, während Firecrawl und Crawl4AI jeweils Stärken im verwalteten Extraktions- bzw. programmierbaren Crawling-Bereich haben.
Sollte ich Cheerio, Playwright oder Puppeteer in AnyCrawl verwenden?
Beginnen Sie mit auto oder cheerio und wechseln Sie zu playwright, wenn die Seite JavaScript-Rendering benötigt. Die Scrape-Dokumentation von AnyCrawl positioniert Cheerio als leichtgewichtig für statisches HTML und Playwright/Puppeteer als browserbasierte Engines für komplexere Seiten. Der praktische Workflow besteht also darin, zuerst das Markdown zu prüfen und nur bei Bedarf eine leistungsfähigere Engine zu nutzen.
Warum fehlt meine AnyCrawl JSON-Ausgabe?
Der häufigste Grund ist, dass "json" nicht in formats enthalten war. Eine weitere häufige Ursache ist, dass die gewählte Engine den Seiteninhalt nicht korrekt erfasst hat, insbesondere auf JavaScript-gerenderten Seiten; versuchen Sie es in diesem Fall erneut mit auto oder playwright und überprüfen Sie das Markdown, bevor Sie das Schema debuggen.
Kann ich AnyCrawl für RAG-Datenpipelines verwenden?
Ja, AnyCrawl eignet sich praktisch für die RAG-Datenvorbereitung, da es Webseiten in Markdown und schema-gesteuertes JSON konvertieren kann, bevor der Inhalt in Ihre Vektordatenbank oder Ihr Wissenssystem gelangt. Ein bewährtes Produktionsmuster ist: zuerst scrapen, extrahierte Felder validieren, die Quell-URL speichern und genügend Markdown für das Debugging behalten.
Was ist der einfachste AnyCrawl-Workflow für Anfänger?
Der einfachste Workflow ist: eine URL scrapen, Markdown anfordern, bestätigen, dass der Inhalt korrekt aussieht, JSON-Modus hinzufügen, die Ausgabe validieren und erst dann zu Crawl oder Search übergehen. Dies vermeidet es, Probleme beim Seitenzugriff, beim Rendern und beim Extraktionsschema in einen schwer zu debuggenden Request zu vermischen.
Fazit
AnyCrawl ist nützlich, weil es Webseiten als Inputs für KI-Systeme behandelt und nicht nur als HTML-Dokumente, die heruntergeladen werden sollen. Beginnen Sie mit einer Seite, untersuchen Sie das Markdown, fügen Sie ein Schema hinzu, validieren Sie das JSON und skalieren Sie erst dann auf Crawl oder Search.
Diese Reihenfolge hält den Workflow einfach. Sie hält auch die Fehlerquellen sichtbar – genau das, was Sie brauchen, wenn Webdaten Teil einer KI-App werden.







