Produktdaten von einer Webseite extrahieren
Ein Werkzeug, das aus der Produktseite eines Onlineshops die wichtigsten Angaben herausliest – Name, Preis, Bild, Beschreibung und verfügbare Varianten – und als strukturierte Daten liefert, statt sie von Hand aus der Seite abzuschreiben. Auch bei uneinheitlich aufgebauten Shops funktioniert die Erkennung.
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.
Was extrahiert wird
Aus einer einzelnen Produktseite liest das Werkzeug Produktname, Preis, Währung, Beschreibung, Hauptbild und, soweit vorhanden, Varianten wie Größe oder Farbe heraus. Die Erkennung stützt sich auf den sichtbaren Seiteninhalt und funktioniert deshalb auch bei Shops, die keine sauberen Schema.org-Angaben im Quelltext hinterlegt haben. Das Ergebnis liegt als strukturiertes JSON vor und lässt sich direkt in eine eigene Tabelle oder Datenbank übernehmen.
Warum das mehr kann als ein einfacher Parser
Ein klassischer Parser, der nur auf feste HTML-Klassen reagiert, scheitert häufig, sobald ein Shop sein Layout ändert. Die Erkennung hier liest den Inhalt der Seite und ordnet ihn den passenden Feldern zu, ähnlich wie eine Person, die die Seite liest und die Angaben von Hand heraussucht – das macht sie robuster gegenüber Layoutänderungen und spart eine aufwendige Anpassung nach jedem Redesign eines Shops.
Grenzen der Erkennung
Produktseiten hinter einem Login, mit Preisen, die erst nach Auswahl einer Variante erscheinen, oder mit stark ungewöhnlichem Aufbau können unvollständig ausgelesen werden. Bei Zweifeln lohnt sich ein Testlauf mit einer einzelnen Beispielseite, bevor die Funktion für viele Produkte gleichzeitig eingesetzt wird. So lässt sich früh erkennen, ob ein bestimmter Shop zuverlässige Ergebnisse liefert oder eine manuelle Nachkontrolle sinnvoll ist, bevor größere Datenmengen verarbeitet werden.
Kanäle und Preis
Auf dieser Seite genügt die Eingabe der Produkt-URL, das Ergebnis erscheint im Browser. Über die API lässt sich die Extraktion für einen ganzen Produktkatalog automatisieren, etwa für einen täglichen Abgleich mit dem eigenen Sortiment. Der Preis liegt bei $0.046 pro Anfrage, zuzüglich $0.0145 je 1.000 Token der Analyse, unabhängig davon, wie viele Felder am Ende gefunden werden und wie umfangreich die Produktseite ist.
Anwendungsfälle
Sortimentsabgleich mit einem Lieferanten
Die Schneider IT-Systeme GmbH & Co. KG gleicht die Produktdaten eines Großhändlers täglich mit dem eigenen Sortiment ab, um Preisänderungen frühzeitig zu erkennen.
Import in einen eigenen Onlineshop
Ein Händler extrahiert die Produktdaten mehrerer Herstellerseiten, um sie schneller in den eigenen Onlineshop zu übernehmen, statt jede Angabe manuell einzutippen.
Wettbewerbsvergleich vor der eigenen Preisgestaltung
Vor der Festlegung eigener Preise vergleicht ein Einzelhändler die Produktdaten mehrerer Wettbewerber, um die eigene Positionierung im Markt einzuschätzen.
Qualitätskontrolle nach einem Datenimport
Nach einem automatisierten Produktimport prüft Thomas Müller stichprobenartig, ob die extrahierten Angaben mit der Originalseite des Herstellers übereinstimmen.
Häufige Fragen
Funktioniert das bei jedem Onlineshop?
Bei den meisten öffentlich zugänglichen Produktseiten ja. Seiten hinter einem Login oder mit Preisen, die erst nach einer Variantenauswahl erscheinen, können unvollständig ausgelesen werden.
Wie genau ist die Erkennung?
Bei klar aufgebauten Produktseiten mit sichtbarem Preis und Namen liegt die Trefferquote hoch. Bei ungewöhnlich aufgebauten Seiten empfiehlt sich ein Testlauf, bevor die Funktion in großem Umfang eingesetzt wird, um die Zuverlässigkeit für diese spezielle Seite einzuschätzen.
Was kostet eine Extraktion?
$0.046 pro Anfrage, zuzüglich $0.0145 je 1.000 Token der Analyse. Für eine einzelne Produktseite liegt der Gesamtpreis meist deutlich unter zehn US-Cent.
Darf ich die extrahierten Daten in meinem eigenen Shop verwenden?
Die technische Extraktion ist Teil dieser Funktion; ob die Nutzung fremder Produktdaten im Einzelfall zulässig ist, hängt von den Bedingungen der jeweiligen Quelle ab und liegt in Ihrer Verantwortung.
Werden die Daten der geprüften Seite gespeichert?
Die Seite wird zur Extraktion geladen und danach nicht dauerhaft gespeichert.
Brauche ich ein Konto?
Nein, es gibt derzeit keine Konten. Sie zahlen jede Anfrage einzeln, direkt über PayPal.
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/product-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/product-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/product-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/product-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/product-extract", 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://ejemplo.com"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.product_extract",
"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. |