Strukturierte Daten von Webseiten extrahieren
Legen Sie die genaue Form fest, die Sie brauchen, mit Pflichtangaben, Werttypen und verschachtelten Listen, und erhalten Sie Seitendaten, die vor der Lieferung dagegen geprüft werden: Ein Produkt kommt mit Preis und Größe jeder Variante an der richtigen Stelle. Sie zahlen pro Nutzung, ohne Abo.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Gedacht für die automatisierte Anbindung an eine Datenbank, ein ERP oder einen eigenen Import-Prozess.
Wenn ausgelesene Daten in ein System passen müssen
Eine einmalige Auslese verträgt lockere Ergebnisse. Sobald die Daten aber eine Datenbankspalte, einen Import oder ein anderes Programm speisen, nicht mehr. Ein Preis, der als Text ankommt, obwohl die Datenbank eine Zahl erwartet, oder eine Angabe, die fehlt, obwohl der Code mit ihr rechnet, ist genau die Art Fehler, die erst viel später und weit entfernt von ihrer Ursache auffällt. Hier beschreiben Sie vorab die genaue Form, die Sie brauchen: welche Angaben Pflicht sind, welchen Werttyp jede hat, welche Werte erlaubt sind und wie Gruppen verschachtelt werden.
Geprüft, bevor es bei Ihnen ankommt
Die Seite wird mit dieser Struktur als Ziel abgerufen und gelesen, und das Ergebnis wird vor der Lieferung gegen dieselbe Struktur geprüft. Was in Ihrem System landet, entspricht Ihrer Vorgabe, sodass ein fehlerhaftes Ergebnis bereits bei der Extraktion gestoppt wird und nicht erst in Ihrer Datenbank auffällt. Verschachtelte Daten gelingen in einem Durchgang: Ein Produkt mit seiner Variantenliste, jede mit Preis und Größe, kommt als vollständiger, bereits geprüfter Baum. Zusätzlich können Sie eine eigene Anweisung mitgeben, die das Lesen der Seite lenkt.
Wofür sich das eignet
Für die automatisierte Anbindung an ein ERP, ein Warenwirtschaftssystem oder eine eigene Datenbank ist ein verlässliches, vorhersehbares Format entscheidend: Ein Feld, das immer „preis“ heißt und immer eine Zahl enthält, lässt sich ohne Sonderfälle einlesen. Diese Funktion liefert genau das, statt jedes Mal ein neues, unvorhersehbares Format zu interpretieren, das erst von Hand in die eigene Datenstruktur übersetzt werden müsste.
Häufige Fragen
Was passiert, wenn ein Wert auf der Seite fehlt?
Das entsprechende Feld bleibt leer, statt mit einem erfundenen Wert gefüllt zu werden.
Warum die Struktur vorab festlegen, statt die Daten in Worten zu beschreiben?
Weil ein Wert in falscher Form oder eine fehlende Angabe später Probleme macht, sobald die Daten eine Datenbank oder ein anderes Programm speisen. Mit einer festen Struktur fängt die Extraktion das selbst ab, denn jedes Ergebnis wird vor der Lieferung dagegen geprüft.
Lassen sich verschachtelte Daten auslesen, etwa ein Produkt mit mehreren Varianten?
Ja. Beschreiben Sie ein Produkt mit einer Liste von Varianten, jede mit eigenem Preis und eigener Größe, und Sie erhalten den ganzen Baum in einem Durchgang, bereits gegen Ihre Struktur geprüft.
Was kann ich in der Struktur festlegen?
Welche Angaben Pflicht sind, welche Art von Wert jede haben muss, etwa Text oder eine ganze Zahl, welche Werte aus einer festen Liste erlaubt sind und wie Gruppen von Angaben ineinander verschachtelt werden.
Passt jedes Ergebnis garantiert zu meiner Struktur?
Ja. Das Ergebnis wird vor der Lieferung gegen genau die Struktur geprüft, die Sie angegeben haben. Was bei Ihnen ankommt, entspricht Ihrer Vorgabe und nicht nur ungefähr, und ein fehlerhaftes Ergebnis wird schon hier abgefangen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/web/scrape-schema \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'const res = await fetch("https://api.kit.forhosting.com/web/scrape-schema", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/scrape-schema",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/scrape-schema", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/scrape-schema", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"url": "https://example.com"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.scrape_schema",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |
Technische Hinweise
Diese Funktion ruft eine Internetadresse auf und liefert das Ergebnis exakt nach einem von Ihnen vorgegebenen JSON-Schema – mit den Feldnamen und Datentypen, die Ihr eigenes System erwartet.
Der Unterschied zur freien KI-Auslese
Bei der freien, beschreibenden Auslese entscheidet das Modell selbst über die Form des Ergebnisses, was für einen schnellen Überblick praktisch ist. Hier geben Sie stattdessen ein JSON-Schema vor – feste Feldnamen, Datentypen, Pflichtfelder – und das Ergebnis wird exakt in dieser Form geliefert, ohne dass Ihr System die Antwort erst umformen oder auf Plausibilität prüfen muss, bevor sie weiterverarbeitet werden kann.
Wie das Schema aussieht
Sie übergeben ein JSON-Schema mit den gewünschten Feldern, etwa Artikelnummer, Bezeichnung, Preis und Verfügbarkeit, jeweils mit Datentyp. Die Funktion liest die Seite, ordnet die gefundenen Werte diesen Feldern zu und gibt ein JSON-Objekt zurück, das genau diesem Schema entspricht; fehlt ein Wert auf der Seite, bleibt das Feld leer, statt mit einem erfundenen Wert gefüllt zu werden, damit Ihr System zwischen einer fehlenden Angabe und einem tatsächlichen Wert von null unterscheiden kann.
Preis pro Anfrage
$0.046 pro Anfrage zuzüglich $0.0145 pro Ergebnis, wie bei der beschreibenden KI-Auslese, da auch hier ein Modell die Zuordnung der Werte zu den Feldern übernimmt. Ein Abonnement ist dafür nicht nötig, abgerechnet wird ausschließlich die tatsächlich verarbeitete Anfrage, unabhängig davon, wie viele Felder das Schema enthält oder wie verschachtelt die Struktur der einzelnen Objekte und Listen darin am Ende tatsächlich ausfällt.
Integrationsbeispiele
Lieferantenkatalog automatisiert ins ERP importieren
Schneider IT-Systeme GmbH & Co. KG lässt den Produktkatalog eines Lieferanten nach einem festen Schema mit Artikelnummer, Preis und Bestand auslesen, um ihn direkt in das eigene ERP zu übernehmen.
Immobilienangebote in eine eigene Datenbank übernehmen
Ein Maklerbüro liest Angebote einer Partnerplattform nach einem festen Schema mit Adresse, Preis und Wohnfläche aus, um sie automatisch in die eigene Datenbank zu übernehmen.
Veranstaltungstermine für die eigene Website übernehmen
Anna Hoffmann liest Termine einer Verbandsseite nach einem Schema mit Datum, Titel und Ort aus, um sie automatisch im eigenen Veranstaltungskalender zu ergänzen.
Technische Fragen
Was ist ein JSON-Schema in diesem Zusammenhang?
Eine Vorgabe der erwarteten Feldnamen und Datentypen, etwa dass „preis“ immer eine Zahl sein muss; die Funktion richtet ihr Ergebnis exakt danach aus.
Worin unterscheidet sich das von der beschreibenden KI-Auslese?
Dort bestimmt das Modell selbst die Form des Ergebnisses, hier geben Sie das Schema fest vor – wichtig, wenn ein nachgelagertes System ein bestimmtes Format erwartet.
Was kostet eine Anfrage?
$0.046 pro Anfrage plus $0.0145 pro Ergebnis, in US-Dollar.
Kann ich verschachtelte Felder abbilden, etwa mehrere Produkte in einer Liste?
Ja, das Schema kann Listen und verschachtelte Objekte enthalten, etwa eine Liste von Produkten mit jeweils eigenen Feldern.
Eignet sich das für den laufenden, automatisierten Betrieb?
Ja, über die API lässt sich die Funktion in einen regelmäßigen Import-Prozess einbinden, etwa einmal täglich für einen aktuellen Lieferantenkatalog.