Preis, Verfügbarkeit und Artikelnummer einer Produktseite als JSON
URL einer Produktseite einfügen. Ein echter Browser in der EU lädt sie, lehnt das Cookie-Banner ab, und ein in der EU gehostetes Modell füllt ein festes Schema aus dem, was der Agent sieht: Name, Preis, Währung, Verfügbarkeit, SKU, GTIN, Marke, Bild. Ein Modellaufruf, ein JSON-Objekt.
Gib die URL einer einzelnen Produktseite ein, keine Kategorie- oder Suchergebnisseite.
Diese Prüfung öffnet einen echten Browser auf unseren Servern und braucht JavaScript in deinem.
Beobachtungen, keine Urteile. Deine Eingabe wird für dieses Ergebnis verarbeitet und in ein Nutzungsjournal geschrieben, das die Datenschutzerklärung beschreibt; sonst wird nichts gespeichert.
Was zwischen URL und JSON passiert
-
Ein echter Browser lädt die Seite
Das Consent-Banner wird zuerst abgelehnt, die Seite ist also die, die ein ablehnender Besucher sieht. Skripte laufen, spät gerenderte Preise werden gerendert.
-
Die Seite wird zum Agentenblick
Derselbe Elementbaum, den der Agent liest: Text, Rollen, Namen, keine Pixel. Dieser Baum, als nicht vertrauenswürdiger Inhalt eingezäunt, ist das, was das Modell bekommt.
-
Ein Modellaufruf füllt das Schema
Ein in der EU gehostetes Modell liefert ein Objekt, das zum Schema passt. Felder, die die Seite nicht zeigt, bleiben leer und werden in den Warnungen genannt, statt mit etwas Plausiblem gefüllt zu werden.
-
Das JSON gehört dir
Kopieren, oder Schema und Aufruf in die eigene Session übernehmen, wo du Felder ergänzen, Varianten durchgehen oder das Ganze nach Zeitplan laufen lassen kannst.
Was die Extraktion richtig macht und wo sie rät
Eine Produktseite trägt ihre Fakten an drei Stellen, und eine gute Extraktion liest alle drei. Strukturierte Daten im Head, meist schema.org Product als JSON-LD, sind am verlässlichsten, wenn es sie gibt, und oft veraltet. Die sichtbare Seite ist das, was ein Kunde sieht und wofür der Shop geradestehen muss. Die Mikrodaten oder data-Attribute rund um den Preis liegen irgendwo dazwischen. Das Modell sieht den Agentenblick, also die gerenderte Seite mit ihrer Struktur, und das feste Schema sagt ihm, welche Fakten es finden soll. Das Ergebnis ist ein Objekt, keine Vermutung über die ganze Seite: Wo ein Feld fehlt, fehlt es.
Die Felder
Name und Marke sind Text. Der Preis ist eine Zahl in der Einheit des Shops, die Währung ein eigener ISO-Code, weil eine Zeichenkette wie 1.299,00 EUR für einen Vergleich unbrauchbar und eine Zahl ohne Währung für einen Vergleich gefährlich ist. Die Verfügbarkeit ist einer von vier Werten: auf Lager, nicht auf Lager, vorbestellbar, unbekannt, und unbekannt steht dort, wo die Seite nichts sagt, statt aus einem Kaufen-Button abgeleitet zu werden. SKU ist die Kennung des Shops; GTIN die Strichcodenummer, wenn die Seite eine zeigt. Bild ist die URL des Hauptproduktbilds.
Was nicht getan wird
Das Tool liest eine Seite und eine Variante davon. Ein Produkt mit Größen- und Farbauswahl zeigt den Preis der Variante, mit der die Seite geladen wurde; eine andere Variante ist eine andere URL oder ein Klick, und das Tool klickt nichts. Preise, die von einem Kundenkonto, einer Lieferpostleitzahl oder einer Menge abhängen, werden so gemeldet, wie ein anonymer Besucher sie sieht. Es gibt keinen Verlauf, keinen Vergleich mit einem anderen Shop, keine Währungsumrechnung und keine Prüfung, ob eine GTIN eine gültige Nummer ist.
Das Modell verifiziert nicht. Zeigt eine Seite zwei Preise, einen durchgestrichenen und den aktuellen, nimmt das Modell den aktuellen und liegt meist richtig; liegt es falsch, sagen die Warnungen das nicht, weil das Modell keine zweite Quelle zum Vergleich hat. Behandle die Ausgabe als eine Lesung der Seite, die gegen eine zweite geprüft gehört, bevor sie eine Entscheidung steuert.
Budget und Datenschutz
Das ist das eine Tool auf dieser Seite, das einen Modellaufruf macht, deshalb ist sein Tageskontingent je Besucher kleiner als das der Scans ohne Modell. Browser und Modell laufen beide auf EU-Hardware. URL, Seite und JSON werden nach der Rückgabe verworfen; das Nutzungsjournal hält Zeitpunkt und Größen fest, wie in der Datenschutzerklärung beschrieben.
Soll dieselbe Extraktion jeden Morgen über eine Liste von URLs laufen, ist das ein Workflow: eine Schleife über die Liste, ein Navigations-Block, ein Extraktions-Block mit diesem Schema und ein HTTP-Block, der das JSON an deinen Endpunkt sendet. Der Anwendungsfall Preisüberwachung geht ihn durch.
Das Schema und der Aufruf, der es füllt
Das Tool nutzt genau dieses JSON-Schema. In deiner eigenen Session kannst du es ändern.
{
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"currency": { "type": "string" },
"availability": { "type": "string", "enum": ["in_stock", "out_of_stock", "preorder", "unknown"] },
"sku": { "type": "string" },
"gtin": { "type": "string" },
"brand": { "type": "string" },
"imageUrl": { "type": "string" }
},
"required": ["name", "price", "currency", "availability"]
}
import { Browserberg } from '@browserberg/sdk';
const bb = new Browserberg({
apiKey: process.env.BROWSERBERG_API_KEY,
baseUrl: 'https://browserberg.com',
});
await using session = await bb.sessions.create();
await session.act({ steps: [{ action: 'navigate', value: 'https://shop.example/p/12345' }] });
const r = await session.extract({ jsonSchema: produktSchema });
console.log(r.data, r.warnings);
from browserberg import Browserberg
bb = Browserberg(api_key="...", base_url="https://browserberg.com")
with bb.sessions.create() as s:
s.act("open https://shop.example/p/12345")
r = s.extract(schema=produkt_schema)
print(r.data, r.warnings)
Fragen zur Produktdaten-Extraktion
Funktioniert das bei jedem Shop?
Bei jeder öffentlichen Produktseite, die in einem Browser rendert. Shops, die Preise erst nach Login oder für eine gewählte Postleitzahl zeigen, liefern das, was ein anonymer Besucher sieht, und das kann gar kein Preis sein.
Kommt das Tool mit Varianten zurecht?
Es liest die Variante, mit der die Seite geladen wurde. Andere Größen oder Farben brauchen einen Klick oder eine andere URL, und das Tool klickt nichts. In deiner eigenen Session kann eine Agentenaufgabe die Varianten durchgehen.
Wie genau ist der Preis?
Es ist der Preis, den die Seite gezeigt hat, gelesen von einem Modell aus der gerenderten Struktur. Meist richtig, gelegentlich falsch auf die Art, wie Modelle falsch liegen. Nimm zwei Lesungen, bevor eine Automatik entscheidet.
Warum ist das Tageslimit niedriger als bei den anderen Tools?
Jede Extraktion ist eine Browser-Session plus ein Modellaufruf auf EU-Hardware. Die anderen Scans berechnen ihr Ergebnis ohne Modell.
Kann ich ein eigenes Schema verwenden?
In der eigenen Session ja: Der extract-Aufruf nimmt jedes JSON-Schema. Der JSON-Schema-Generator auf dieser Website baut eines aus einem Beispiel.
Taugt das für Preismonitoring?
Als Baustein. Preismonitoring ist dieselbe Extraktion nach Zeitplan über eine Liste von URLs, mit dem JSON an deinem Endpunkt; das ist ein Workflow, kein einzelner Aufruf.
Passende Tools und Anleitungen
- Preisüberwachung Dieselbe Extraktion nach Zeitplan über eine URL-Liste, gesendet an deinen Endpunkt
- JSON-Schema-Generator Ein eigenes Schema aus einem Beispielobjekt bauen
- Was der Agent sieht Der Seitenbaum, den das Modell liest, in drei Stufen
- Web-Scraping und DSGVO Was beim Auslesen fremder Seiten rechtlich zu bedenken ist
Jeden Morgen über deine Liste laufen lassen
Fünf Browserstunden, keine Karte. Eine Schleife, eine Navigation, eine Extraktion mit diesem Schema und ein POST an deinen Endpunkt.