Wenn Sie eine gescrapte Webseite direkt in ein Sprachmodell eingeleitet haben, kennen Sie das Problem bereits: Die Seite besteht größtenteils aus Rauschen. Navigationsmenüs, Cookie-Banner, eingebettete Skripte, Tracking-Pixel und Layout-Wrapper werden dem Modell zusammen mit den wenigen Absätzen zugeführt, die Sie tatsächlich brauchen. Das Modell verbraucht Tokens beim Lesen von Markup, das es nie verwenden wird, und das zusätzliche Rauschen macht Retrieval und Zusammenfassungen weniger zuverlässig.
Dieser Leitfaden zeigt einen saubereren Weg. Die Crawling API kann eine Seite als ordentliches Markdown anstelle von rohem HTML zurückgeben, sodass Sie Ihrem Modell lesbaren Text statt Tag-Suppe liefern. Wir erläutern, wie Sie Markdown-Ausgabe anfordern, warum Markdown HTML für LLM- und RAG-Token-Budgets übertrifft, und eine kleine Ende-zu-Ende-Pipeline: Markdown abrufen, aufteilen, dann einbetten oder prompten. Der Begriff, den Sie dabei im Hinterkopf behalten sollten, ist LLM-fertiges Markdown-Web-Scraping, denn das Ausgabeformat erleichtert den Rest Ihres Stacks.
Warum Markdown rohem HTML für LLMs überlegen ist
HTML wurde entwickelt, um Seiten in einem Browser darzustellen. Es trägt alles mit, was eine Layout-Engine benötigt: verschachtelte divs, Klassennamen, Inline-Stile, Skripte und ARIA-Attribute. Ein Modell braucht davon fast nichts. Wenn rohes HTML in einen LLM-Workflow gelangt, muss das Modell durch Markup und Boilerplate waten, bevor es den eigentlichen Inhalt erreicht, was echte Kosten verursacht.
Markdown bewahrt die Struktur, die wichtig ist, und lässt den Rest weg. Überschriften bleiben Überschriften, Listen bleiben Listen, Tabellen bleiben lesbar, und Links bleiben nützlich, ohne in Attributen vergraben zu sein. Die praktischen Vorteile zeigen sich klar:
- Token-Budget. Eine typische Artikelseite kann in rohem HTML mehrfach größer sein als in ihrem Markdown-Äquivalent, sobald Menüs, Skripte und Wrapper entfernt sind. Weniger Tokens bedeutet niedrigere Kosten pro Aufruf und mehr Platz für tatsächlichen Kontext im Fenster des Modells.
-
Genauigkeit. Ein Modell, das saubere Prosa liest, greift seltener auf ein abgesprengtes Navigationsetikett oder einen Cookie-Zustimmungs-String zurück als eines, das eine Wand aus
divs durchsucht. Weniger Rauschen rein, weniger falsche Schlussfolgerungen heraus. -
Chunking. Markdown-Überschriften geben Ihnen natürliche Teilungspunkte. Sie können an
##-Grenzen aufteilen und semantisch verwandten Text zusammenhalten, anstatt bei einer willkürlichen Zeichenanzahl mitten in einem Satz zu schneiden. - Inspizierbarkeit. Wenn etwas nachgelagert schiefläuft, können Sie eine Markdown-Datei öffnen und sie lesen. Das Debuggen eines 200-KB-HTML-Blobs ist ein anderes Erlebnis.
Für Teams, die Web-Scraping für KI betreiben, ist das Ausgabeformat kein kleines Detail. Es legt die Qualitätsobergrenze für alles fest, was nach dem Abruf passiert. Einen umfassenderen Blick darauf, wie Bereinigung die Modellergebnisse beeinflusst, bietet wie man gescrapte Webdaten für KI und ML strukturiert und bereinigt.
Wie Sie Markdown von der Crawling API anfordern
Crawlbase gibt Markdown nativ zurück. Sie schalten keinen separaten HTML-zu-Markdown-Konverter dazwischen; Sie fragen die Crawling API nach Markdown, und sie führt die Konvertierung serverseitig als Teil des Crawls durch.
Die Steuerung erfolgt über einen einzigen Parameter. Fügen Sie format=md zu Ihrer Anfrage hinzu, und die API gibt Markdown statt HTML zurück.
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com&format=md"
Wenn Sie nur den wichtigsten lesbaren Inhalt wünschen, fügen Sie md_readability=true hinzu. Damit wird vor der Konvertierung eine Readability-Extraktion durchgeführt, die Menüs, Seitenleisten und Footer-Rauschen entfernt, sodass das Markdown den Artikelkörper und wenig sonst enthält.
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com&format=md&md_readability=true"
Beide Modi haben ihren Platz. Einfaches format=md bewahrt breiteren Seitenkontext wie Navigation und verwandte Links, was praktisch ist, wenn Sie die Struktur einer Website kartieren. Das Hinzufügen von md_readability=true gibt Ihnen Hauptinhaltextraktion, was Sie für Embeddings, Zusammenfassungen und RAG möchten. Wenn das Ziel ist, ein Modell zu füttern, starten Sie mit aktivierter Readability.
Markdown-Ausgabe formatiert, was auch immer die API laden konnte. Wenn die Zielseite Datacenter-Traffic blockiert oder ihren Inhalt mit JavaScript rendert, muss die API diese Abwehrmechanismen trotzdem zuerst überwinden. Kombinieren Sie format=md mit einem JavaScript-Token für clientseitig gerenderte Seiten, und lassen Sie die API IPs für geschützte Seiten rotieren. Sauberes Markdown einer leeren Hülle ist immer noch eine leere Hülle.
Die Markdown-Ausgabe in einer kleinen RAG-Pipeline verwenden
Retrieval-Augmented Generation, oder RAG, gibt einem Modell Zugang zu externem Wissen, bevor es antwortet. Anstatt sich nur auf Trainingsdaten zu verlassen, ruft das System zuerst relevanten Text ab und übergibt diesen Kontext dann dem Modell. Die übliche Form ist: Inhalt abrufen, in Chunks aufteilen, diese Chunks in einem Vektorspeicher einbetten, die relevanten zur Abfragezeit abrufen, dann das Modell mit ihnen prompten.
Die Qualität dieser Pipeline wird lange vor dem Aufruf des Modells entschieden. Wenn die abgerufene Seite voller wiederholter Menüs, Cookie-Banner und toter Links ist, wird dieses Rauschen direkt neben dem nützlichen Text aufgeteilt und indiziert, was die Retrieval-Qualität senkt. Sauberes Markdown gibt jedem Chunk eine bessere Chance, bedeutungsvolle Inhalte zu enthalten. Hier ist der Abrufschritt mit aktivierter Readability, damit jedes Dokument größtenteils aus Körpertext besteht.
import requests API = "https://api.crawlbase.com/" TOKEN = "YOUR_TOKEN" def fetch_markdown(url): params = { "token": TOKEN, "url": url, "format": "md", "md_readability": "true", } resp = requests.get(API, params=params, timeout=60) resp.raise_for_status() return resp.text
Mit dem Markdown zur Hand teilen Sie es in Chunks auf. Da Markdown seine Überschriften beibehält, können Sie an Überschriftgrenzen aufteilen, anstatt blind bei einer Zeichenanzahl zu schneiden, was jeden Chunk thematisch kohärent hält.
import re def chunk_by_heading(markdown, max_chars=1200): sections = re.split(r"(?=^#{1,3} )", markdown, flags=re.MULTILINE) chunks = [] for section in sections: text = section.strip() if not text: continue if len(text) <= max_chars: chunks.append(text) else: for i in range(0, len(text), max_chars): chunks.append(text[i : i + max_chars]) return chunks
Von hier aus ist der letzte Schritt das, was Ihr Stack bereits tut: jeden Chunk in eine Vektordatenbank für das Retrieval einbetten oder für einen schnellen Test die Chunks direkt in einen Prompt einfügen. Der Punkt ist, dass die Eingabe jetzt sauberer Text ist, sodass die Einbettungs- und Prompt-Schritte diese Sauberkeit erben.
url = "https://example.com/some-article" markdown = fetch_markdown(url) chunks = chunk_by_heading(markdown) # Send the most relevant chunks as context to your model context = "\n\n".join(chunks[:3]) prompt = f"Answer using only this context:\n\n{context}\n\nQ: ..." print(len(chunks), "chunks ready for embedding or prompting")
Wenn Sie tiefer in die Retrieval- und Modellierungsseite einsteigen möchten, erläutert wie KI-Datenextraktion funktioniert, wie saubere Eingaben zu Modellausgaben führen.
Überspringen Sie den HTML-zu-Markdown-Bereinigungsschritt vollständig. Fügen Sie format=md zu Ihrer Anfrage hinzu, und die Crawling API rendert die Seite hinter einer vertrauenswürdigen IP, konvertiert sie serverseitig und liefert ordentliches Markdown, das zum Aufteilen und Einbetten bereit ist. Fügen Sie md_readability=true hinzu, um alles außer dem Hauptinhalt zu entfernen. Testen Sie es mit Ihren eigenen URLs im kostenlosen Tarif.
Was der Bereinigungsschritt früher kostete
Ohne native Markdown-Ausgabe ist das übliche Muster eine fehleranfällige Vorverarbeitungskette: HTML abrufen, das DOM parsen, Skripte und Stile entfernen, Navigation entfernen, den Artikelkörper finden, Leerzeichen normalisieren, in Markdown konvertieren, und erst dann aufteilen und einbetten. Jedes Glied in dieser Kette ist eine potenzielle Fehlerquelle.
Eine Website-Neugestaltung kann Ihre Body-Extraktions-Selektoren über Nacht zerstören. Ein neues Cookie-Banner kann in Ihren extrahierten Text durchsickern. Ein Parser, der für eine Seitenvorlage optimiert ist, kann eine andere stillschweigend verzerren. Das Ergebnis: Ingenieure verbringen ihre Zeit damit, Bereinigungslogik zu pflegen, anstatt Retrieval-Qualität, Prompts oder das Produkt selbst zu verbessern.
Markdown näher am Crawl zurückzugeben, reduziert diese Kette. Der Workflow wird zu: Markdown abrufen, Antwort validieren, aufteilen, einbetten. Weniger bewegliche Teile bedeuten weniger stille Fehler und mehr Zeit für die Teile des Systems, die tatsächlich den Unterschied machen. Wenn Sie dies über viele Seiten betreiben, multipliziert sich die Vereinfachung, die einem einzelnen Abruf zugute kommt, was der Schwerpunkt von groß angelegtem Web-Scraping ist.
Die Antwort vor der Indizierung validieren
Eine Gewohnheit zahlt sich aus: Überprüfen Sie die Antwort zur Aufnahmezeit, bevor fehlerhafte Daten Ihren Vektorspeicher erreichen. Eine Seite, die umleitet, ein Timeout hat oder einen dünnen Body zurückgibt, sollte früh abgefangen werden, denn ein schwacher Chunk, der heute indiziert wird, wird nächste Woche zu einer falschen Antwort.
def is_usable(markdown, min_chars=200): if markdown is None: return False stripped = markdown.strip() # Reject empty shells and near-empty error pages return len(stripped) >= min_chars md = fetch_markdown(url) if not is_usable(md): print("Skipping: thin or empty response") else: chunks = chunk_by_heading(md) # proceed to embed / index
Das ist eine kleine Sicherheitsprüfung, aber sie macht den Unterschied zwischen einem Retrieval-System, das vertrauenswürdig bleibt, und einem, das sich langsam mit Datenmüll füllt. Sauberere Quellinhalte kombiniert mit einer einfachen Plausibilitätsprüfung halten Ihre RAG-Pipeline-Webdaten von der ersten Anfrage an zuverlässig.
Wo LLM-fähiges Markdown am besten passt
Markdown-Ausgabe bewährt sich überall, wo Webinhalte zu modellfertigem Kontext werden müssen:
- Dokumentations-Chatbots. Hilfe-Center- und Produktdokumentationsseiten in saubere Markdown-Chunks für Suche und Retrieval umwandeln und mit einem regelmäßigen Re-Crawl aktuell halten.
- KI-Recherche-Agenten. Artikel, Berichte und öffentliche Einreichungen in einem Format abrufen, das ein Modell schnell lesen kann, ohne dass der Agent sein Budget für Markup verbraucht.
- Wettbewerber- und Marktbeobachtung. Preisseiten, Feature-Seiten und Changelogs als lesbaren Text verfolgen, anstatt bei jedem Lauf rohes HTML neu zu parsen.
- Interne Suche. Einen durchsuchbaren Wissensindex auf sauberem Quellmaterial aus dem gesamten Web aufbauen.
- Zusammenfassungspipelines. Lange Seiten mit weit weniger Vorverarbeitung zu prägnanten Zusammenfassungen zusammenfassen.
Agenten profitieren besonders. Wenn ein Tool Readability-gefiltertes Markdown statt rohem HTML zurückgibt, bekommt das Modell von Anfang an etwas, das einem verwendbaren Dokument nahekommt. Das erleichtert das Zusammenfassen, das Extrahieren von Feldern, das Vergleichen von Quellen und die Entscheidung über den nächsten Schritt, was zu einem saubereren Agenten-Loop tendiert. Wenn Sie Agenten-Traffic über rotierende IPs leiten, erklärt was ein AI Proxy ist, wie diese Schicht mit Tools wie dem Smart AI Proxy und dem Web MCP-Server zusammenpasst. Und wenn das Ziel strukturierte Felder statt Prosa ist, gibt die Crawling API stattdessen geparsten JSON zurück.
Den Crawl unblockiert halten
Saubere Ausgabe hilft nur, wenn Sie die Seite überhaupt abrufen können. Die Seiten, die für KI-Kontext am wertvollsten sind, sind oft diejenigen, die sich gegen Bots verteidigen, sodass der Abrufschritt sowohl mit Blockierungen als auch mit Formatierung umgehen muss. Die Weiterleitung durch die Crawling API bedeutet, dass IP-Rotation und Rendering serverseitig gehandhabt werden, aber die allgemeinen Gewohnheiten gelten trotzdem: Pacing bei Anfragen, Variieren der Ziele und Lesen von Statuscodes als Signal. Das vollständige Playbook findet sich unter wie man Websites scrapt, ohne blockiert zu werden.
Wichtigste Erkenntnisse
- Markdown ist die richtige Form für Modelle. Es bewahrt Überschriften, Listen und Tabellen, während es das Markup weglässt, das Tokens verschwendet und das Retrieval beeinträchtigt.
-
Ein Parameter schaltet das Format um.
format=mdzur Crawling-API-Anfrage hinzufügen;md_readability=truehinzufügen, um nur den Hauptinhalt zu extrahieren. - Sauberere Eingaben heben die gesamte Pipeline an. Bessere Chunks führen zu besseren Embeddings und relevanterem Retrieval, alles entschieden, bevor das Modell aufgerufen wird.
- Serverseitige Konvertierung entfernt eine fehleranfällige Kette. Markdown abrufen, validieren, aufteilen, einbetten, anstatt DOM-Stripping- und HTML-zu-Markdown-Logik selbst zu pflegen.
- Bei der Aufnahme validieren. Eine schnelle Längenprüfung fängt leere Hüllen und Fehlerseiten ab, bevor sie Ihren Index vergiften.
- Markdown benötigt immer noch einen unblockierten Abruf. Das Format mit einem JS-Token und IP-Rotation kombinieren, damit die API den echten Inhalt zuerst lädt.
Häufig gestellte Fragen
Was ist LLM-fähiges Markdown-Web-Scraping?
Es bedeutet, Webinhalte in einem Format zu sammeln, das ein Sprachmodell sofort verwenden kann, mit wenig oder keiner Bereinigung. Anstelle von rohem HTML voller Skripte, Stile und Navigation ist die Ausgabe sauberes, strukturiertes Markdown, das sich leicht aufteilen, einbetten, zusammenfassen und in Prompts einfügen lässt. Mit Crawlbase erhalten Sie es, indem Sie format=md zu einer Crawling-API-Anfrage hinzufügen.
Wie erhalte ich Markdown-Ausgabe von der Crawlbase Crawling API?
Fügen Sie format=md zu Ihrer Anfrage hinzu, und die API gibt Markdown statt HTML zurück. Wenn Sie auch Hauptinhaltextraktion vor der Konvertierung wünschen, fügen Sie md_readability=true hinzu, das Menüs, Seitenleisten und Footer-Rauschen entfernt, sodass das Markdown größtenteils aus dem Artikelkörper besteht. Beide Parameter sind Teil der Standardanfrage, daher ist keine zusätzliche Einrichtung erforderlich.
Warum ist Markdown besser als HTML für RAG-Pipelines?
Markdown bewahrt nützliche Struktur wie Überschriften, Listen, Links und Tabellen ohne das umgebende Markup. Das erzeugt sauberere Chunks, präzisere Embeddings und relevanteresRetrieval als bei noisigem rohem HTML, wo Boilerplate neben dem echten Inhalt indiziert wird und die Antwortqualität senkt.
Reduziert Markdown-Ausgabe den Token-Verbrauch bei LLMs?
Ja. Das Entfernen von Skripten, Stilen und Layout-Wrappern macht dieselbe Seite in Token-Hinsicht viel kleiner, besonders mit aktivierter Readability. Das senkt die Kosten pro Aufruf und lässt mehr vom Kontextfenster des Modells für den Inhalt übrig, der wichtig ist, anstatt für Markup, das das Modell sonst lesen und verwerfen müsste.
Kann ich trotzdem den vollständigen Seitenkontext erhalten, nicht nur den Hauptartikel?
Ja. Verwenden Sie format=md allein, ohne md_readability=true. Einfaches Markdown bewahrt breiteren Seitenkontext wie Navigation und verwandte Links, was für die Seitenstrukturanalyse nützlich ist. Aktivieren Sie Readability nur, wenn Sie den Hauptinhalt für Embeddings, Zusammenfassungen oder Prompts isolieren möchten.
Benötige ich ein JavaScript-Token, um Markdown von dynamischen Seiten zu erhalten?
Wenn die Zielseite ihren Inhalt clientseitig rendert, ja. Markdown-Formatierung läuft auf dem, was die API laden konnte. Für eine JavaScript-gerenderte Seite übergeben Sie also ein JS-Token, damit die Seite zuerst in einem echten Browser gerendert wird, dann fordern Sie format=md an. Für statische Seiten reicht ein normales Token.
Crawlen Sie jede Website im großen Maßstab, ohne gegen die Infrastruktur zu kämpfen.
Crawlbase übernimmt Proxys, Fingerprints und CAPTCHAs, damit Ihr Team Datenpipelines ausliefert, statt Crawl-Infrastruktur zu pflegen. 1.000 Anfragen kostenlos, keine Karte erforderlich.

