- query
- Die Target-URL, die Sie übermittelt haben. Auf allen drei unserer Zeilen gefüllt, auch auf den beiden gescheiterten - sie gibt zurück, wonach gefragt wurde, und genau das lässt einen Ergebnissatz gegen Ihre Eingabeliste abgleichen.
- sku_code
- Soll Targets eigene Artikelnummer tragen. Auf unserer Zeile leer, obwohl diese Nummer als
A-…-Segment in der URL selbst sichtbar ist. Wenn Sie sie brauchen, lesen Sie sie aus url, statt auf die Spalte zu warten. - product_url
- Soll die kanonische Produktseite tragen. Auf unserer Zeile leer - die Adresse stand stattdessen in
url. Beachten Sie: In der dreizehnspaltigen Form gibt es diese Spalte gar nicht. - name
- Der Produkttitel, wie die Anzeige ihn angibt. Gefüllt, und zwar als vollständiger Handelstitel: Marke, Modell, Konfiguration und Ausführung in einer Zeichenkette. Das ist hier die Spalte, die der Dienst am verlässlichsten liefert.
- description
- Soll den längeren Produkttext tragen. Auf unserer Zeile leer.
- parsed_price
- Soll den Preis als nackte Zahl tragen. Auf unserer Zeile leer, und in der dreizehnspaltigen Form gar nicht vorhanden. Siehe die Anmerkung unten: Die Seite liefert keinen Preis zum Auslesen.
- price
- Soll den Preis wie angezeigt tragen. Auf unserer Zeile leer, aus demselben Grund.
- currency
- Soll die Währung tragen, in der der Preis angegeben ist. Auf unserer Zeile leer - ohne Preis gibt es nichts zu denominieren.
- availability
- Soll den Bestandsstatus tragen. Auf unserer Zeile leer. Target veröffentlicht Verfügbarkeit je Filiale und je Versandart; behandeln Sie das Fehlen also so, dass die Anzeige keinen Wert herausgibt, und nicht so, dass der Artikel nicht verfügbar wäre.
- rating
- Soll eine durchschnittliche Kundenbewertung tragen. Auf unserer Zeile leer.
- reviews
- Soll die Rezensionszahl hinter dieser Bewertung tragen. Auf unserer Zeile leer.
- images
- Jedes Bild der Anzeige. Gefüllt - eine echte Target-Bild-URL auf dem eigenen Bildhost des Produkts. Zusammen mit
name ist das, was der Lauf tatsächlich lieferte. - brand
- Soll den Hersteller tragen. Auf unserer Zeile leer, obwohl bei genau diesem Produkt der Hersteller das erste Wort von
name ist. Lesen Sie ihn aus dem Namen, wenn Sie danach gruppieren müssen. - sku
- Soll einen zweiten Identifikator tragen. Auf unserer Zeile leer, wir können Ihnen also nicht sagen, ob Target ihn anders füllt als
sku_code. - url
- Die Adresse, aus der die Zeile entstanden ist. Gefüllt und auf unserer Zeile gleich
query. Die Artikel-ID steckt darin, was sie zum praktischen Identifikator dieses Dienstes macht. - image
- Das Hauptbild für sich, sodass der Normalfall ohne Zerlegen von Zeichenketten auskommt. Gefüllt und auf unserer Zeile identisch mit
images. - status
- Ein Kennzeichen je Zeile, geschrieben von unserem Exporter, nicht von Target. Über unsere drei Läufe hinweg nahm es zwei Werte an:
ok auf einer Zeile und http 404 auf zweien, letztere von einer Platzhalteradresse, die es nicht gibt. Gleichen Sie über diese Spalte ab.
Zwei Dinge kann diese Tabelle allein nicht sagen. Erstens, warum die Geldspalten leer sind. Die Dienstnotiz des Anbieters hält fest, dass der Preis ausschließlich aus Targets separater RedSky-API kommt, die geschützt ist und Adressen aus Rechenzentren rundweg abweist - und ein direkter Abruf derselben Produktseite stimmt dem vollständig zu: rund 685 KB HTML mit dem Produktnamen, der Artikel-ID und fast tausend Verweisen auf den Bildhost, ohne strukturierten Datenblock und ohne Preis irgendwo, dazu ein Preconnect-Hinweis auf genau diese API. Die lesbare Seite enthält die Zahl nicht, also liefert kein Scraper, der diese Seite liest, sie zurück. Zweitens hat sich die Kopfzeile bewegt. Unser erfolgreicher Lauf hat siebzehn Spalten; beide späteren haben dreizehn, ohne sku_code, product_url, parsed_price und images. Prüfen Sie, welche Form Sie halten, bevor Sie zwei Exporte vergleichen.