KI-Web-Scraping: LLM-Extraktion, Prompt-to-JSON & Kosten
LLM-Extraktion verwandelt jede Seite mit einem einfachen englischen Prompt in sauberes JSON — keine Selektoren zu pflegen. Aber das Modell kann die Seite nicht abrufen und rohes HTML verbraucht schnell Tokens. So machen Sie es richtig.
KI-Web-Scraping bedeutet, ein Sprachmodell auf eine Seite zu richten und in einfachem Englisch nach den Feldern zu fragen, die Sie als JSON zurückhaben möchten — keine CSS-Selektoren zu schreiben, keinen Parser zu pflegen, wenn sich das Layout ändert. Es ist wirklich transformativ für unordentliche, vielfältige oder einmalige Extraktionen. Es wird jedoch oft missverstanden, weshalb Menschen am Ende dafür bezahlen, ein paar hundert Seiten zu scrapen und halluzinierte Daten zurückzubekommen. Zwei Fakten beheben den Großteil dieser Verwirrung: Ein Sprachmodell kann keine Webseite abrufen — es verarbeitet nur den Text, den Sie ihm geben — und ihm rohes HTML zu füttern, ist der schnellste Weg, Ihr Token-Budget zu verbrennen. Dieser Leitfaden behandelt das Extraktionsmuster, das funktioniert, wann es Selektoren übertrifft und wie man sowohl Kosten als auch Halluzinationen unter Kontrolle hält.
Das sagt niemand: Das Modell kann nicht abrufen
Der schwierige Teil des KI-Scrapings ist nicht die KI. Ein Chatbot kann eine Live-Seite nicht zuverlässig laden — er benötigt eine dedizierte Engine, um zuerst das HTML abzurufen, dann verarbeitet er den Text, den Sie bereitstellen. Eine LLM-Extraktionspipeline ist also wirklich eine Scraping-Pipeline mit einem intelligenten Parser am Ende, und die Scraping-Hälfte ist der Punkt, an dem Dinge scheitern: Bot-Management, JavaScript-Rendering, IP-Sperren. Lösen Sie das Abrufen mit Proxies und einer Rendering-Schicht, und die Extraktion wird zum einfachen Teil. Der saubere Weg, Seiten zu erhalten, ist eine Scraper-API, die Rotation und Rendering handhabt und Markdown zurückgibt, was — wie der nächste Abschnitt zeigt — auch der günstigste mögliche Input für ein Modell ist:
import requests
def fetch_markdown(url, api_key):
r = requests.get(
"https://api.quantumproxies.io/scrape",
params={"url": url, "render": "auto", "output": "markdown"},
headers={"Authorization": f"Bearer {api_key}"},
timeout=(5, 40),
)
r.raise_for_status()
return r.json()["markdown"] # nav/ads stripped, ready for the model
Warum Markdown, nicht HTML, der eigentliche Kostentreiber ist
Der größte Kostentreiber beim KI-Scraping ist, wie viele Tokens Sie durch das Modell schicken, und rohes HTML besteht größtenteils aus Tokens, die Sie nicht wollen: Inline-Stile, Skript-Tags, Tracking-Attribute, Navigation, Fußzeilen. Konvertieren Sie die Seite in sauberes Markdown — oder extrahieren Sie nur den Hauptinhalt — bevor Sie extrahieren, und Sie reduzieren routinemäßig die Eingabegröße um eine Größenordnung, was die Kosten um den gleichen Faktor senkt und als Bonus die Halluzinationen reduziert, weil das Modell den Inhalt anstelle des Chroms sieht. Deshalb ist Markdown-First der Standard für die Fütterung von Modellen, das gleiche Prinzip hinter der Fütterung von LLMs mit frischen Webdaten. Wenn Sie nur eine Sache aus diesem Artikel mitnehmen: Senden Sie einem Modell niemals den rohen Seitenquelltext.

Prompt-to-JSON mit einem Schema
Sobald Sie sauberen Text haben, ist die Extraktion ein einziger Aufruf: Beschreiben Sie die gewünschten Felder, übergeben Sie ein Schema, damit die Ausgabe strukturiert ist, und weisen Sie das Modell an, null zurückzugeben, anstatt zu erfinden, wenn ein Feld fehlt. Eine Extraktions-API fasst Abrufen, Bereinigen und Extrahieren in eine Anfrage zusammen, sodass Sie die gesamte Infrastruktur überspringen können:
curl -X POST "https://api.quantumproxies.io/extract" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product/xyz",
"schema": {
"title": "string",
"price": "number",
"in_stock": "boolean",
"rating": "number|null"
},
"prompt": "Extract the product. Use null for anything not present."
}'
Das Schema erfüllt eine doppelte Funktion: Es erzwingt eine vorhersehbare Form für nachgelagerten Code und es beschränkt das Modell, was die erste Verteidigungslinie gegen halluzinierte Felder ist. Validieren Sie die Antwort gegen dasselbe Schema und lehnen Sie alles ab, was nicht passt — ein erfundener Preis ist schlimmer als ein fehlender.
def validate(record, schema):
for field, kind in schema.items():
v = record.get(field)
if v is None and "null" not in kind:
raise ValueError(f"missing required field: {field}")
return record # only trust records that satisfy the schema
Wann LLM-Extraktion CSS-Selektoren übertrifft — und wann nicht
KI-Extraktion ist kein universelles Upgrade; es ist ein anderes Werkzeug mit einer anderen Kostenkurve. Greifen Sie darauf zurück, wenn die Arbeit vielfältig oder instabil ist — das Scrapen von tausend Seiten mit tausend Layouts, eine Seite, die sich ständig neu gestaltet, unstrukturierte Inhalte wie Bewertungen oder Einträge, bei denen kein sauberer Selektor existiert, oder ein einmaliger Job, bei dem das Schreiben von Selektoren die Zeit nicht wert ist. Bleiben Sie bei CSS- oder XPath-Selektoren, wenn Sie eine stabile Seite mit hohem Volumen bearbeiten: Selektoren sind deterministisch, effektiv kostenlos pro Seite und halluzinieren nie. Das ausgereifte Muster ist hybrid — Selektoren für Ihre Kernziele mit hohem Volumen, LLM-Extraktion für den langen Schwanz und die Seiten, die sich ständig ändern.
Kostenkontrolle verwandelt dies von einem Experiment in die Produktion. Über Markdown-First hinaus, cachen Sie aggressiv, damit Sie niemals eine unveränderte Seite erneut extrahieren, passen Sie die Modellgröße an die Aufgabenschwierigkeit an — ein kleines Modell bewältigt einfache Felderextraktion gut — und batchen Sie, wo die API es erlaubt. Rendering ist ein eigener Posten; rendern Sie nur Seiten, die wirklich JavaScript benötigen, eine Entscheidung, die wir in nur rendern, wenn nötig quantifizieren. Erhalten Sie eine leere Seite anstelle von Inhalten und die Lösung ist normalerweise das Rendering, behandelt in leere Seite, fehlende Daten.
Ein Wort zur kostenlosen und Open-Source-Route, da dies das ist, wonach die meisten Menschen zuerst suchen. Open-Source-Extraktionsbibliotheken sind hervorragend, um das Muster zu lernen und für kleine Aufgaben, aber sie geben Ihnen die beiden harten Probleme zurück, mit denen dieser Artikel begann: Sie müssen immer noch Seiten über Bot-Management hinweg abrufen, und Sie zahlen immer noch für das Modell, das die Extraktion durchführt. 'Kostenlos' bedeutet normalerweise kostenloser Code plus Ihre eigenen Proxy- und Token-Rechnungen. Das ist ein guter Tausch für ein Hobbyprojekt oder einen Proof of Concept; bei Produktionsvolumen ist die Wartung der Abrufschicht genau das, was Teams auslagern, eine Build-vs-Buy-Entscheidung, die wir in DIY-Scraper-Stack vs eine Scraper-API darlegen.

Häufig gestellte Fragen
Kann ChatGPT eine Website scrapen?
Nicht allein. Ein Sprachmodell kann eine Live-Seite nicht zuverlässig abrufen und rendern — es verarbeitet den Text, den Sie bereitstellen. Um KI für Scraping zu nutzen, kombinieren Sie eine dedizierte Scraping-Engine, die die Seite abruft und bereinigt, mit dem Modell, das strukturierte Daten aus dem Ergebnis extrahiert. Die Scraping-Engine handhabt Proxies, Rendering und Sperren; das Modell wandelt Inhalte in JSON um.
Wie reduziere ich die Kosten für KI-Web-Scraping?
Konvertieren Sie Seiten in Markdown oder extrahieren Sie den Hauptinhalt, bevor Sie etwas an ein Modell senden — rohes HTML kann zehnmal so viele Tokens für die gleiche Information bedeuten. Dann cachen Sie unveränderte Seiten, verwenden ein kleineres Modell für einfache Felderextraktion, rendern Sie JavaScript nur, wenn eine Seite es erfordert, und batchen Sie Anfragen. Das Token-Volumen ist der dominierende Kostenfaktor, daher ist das Reduzieren der Eingabegröße die effektivste Optimierung.
Halluziniert KI-Web-Scraping falsche Daten?
Es kann, besonders wenn es mit rauschigem rohem HTML gefüttert wird oder nach Feldern gefragt wird, die nicht auf der Seite sind. Schützen Sie sich davor, indem Sie die Eingabe bereinigen, ein explizites Schema übergeben, das Modell anweisen, null zurückzugeben, wenn ein Wert fehlt, und jede Antwort gegen dieses Schema validieren, bevor Sie ihr vertrauen. Ein fehlendes Feld können Sie erneut versuchen; ein selbstbewusst erfundenes Feld korrumpiert stillschweigend Ihr Dataset.
Ist LLM-Extraktion besser als CSS-Selektoren?
Es hängt von der Aufgabe ab. LLM-Extraktion gewinnt, wenn sich Layouts häufig ändern oder variieren und wenn das Schreiben von Selektoren nicht lohnenswert ist, da es keine Selektoren benötigt und Redesigns überlebt. CSS-Selektoren gewinnen auf einer einzelnen stabilen Seite mit hohem Volumen: Sie sind deterministisch und weit günstiger pro Seite. Die meisten Produktionspipelines verwenden Selektoren für Kernziele und LLM-Extraktion für den langen Schwanz.
KI-Web-Scraping ist mächtig, sobald Sie aufhören, das Modell als Scraper zu behandeln. Abrufen Sie sauber mit Proxies, füttern Sie Markdown statt HTML, beschränken Sie die Ausgabe mit einem Schema und reservieren Sie LLM-Extraktion für die Aufgaben, bei denen ihre Flexibilität ihre Tokenkosten wert ist. Das ist der Unterschied zwischen einer schicken Demo und einer Pipeline, die Sie jeden Tag betreiben können.