Zum Hauptinhalt springen

Shop::Wildberries::ProductsList - Wildberries Produktlisten-Parser

img

Übersicht über den Parser

Mit dem Wildberries-Produkt-Parser können Sie Produktdaten aus Suchergebnissen nach Schlüsselwörtern oder aus einer Liste von Produkten einer bestimmten Kategorie oder Marke extrahieren. Mit seiner Hilfe können Sie eine Datenbank mit Produktlinks aufbauen, die Preisdynamik, Änderungen in der Anzahl der Bewertungen oder des Ratings verfolgen sowie Produktbilder oder Informationen über verfügbare Farben und Größen sammeln. Zusätzlich wird separat eine Liste von Werbeanzeigen mit Angabe der jeweiligen Position in den organischen Suchergebnissen erfasst. Der Parser bietet die Möglichkeit, die Sortierung der Ergebnisse festzulegen und eine Abholstation (Pick-up Point) anzugeben.

Die Funktionalität von A-Parser ermöglicht es, Datenerfassungseinstellungen für die spätere Verwendung zu speichern (Presets), Zeitpläne für die Datenerfassung festzulegen und vieles mehr. Sie können die automatische Abfragevervielfachung, die Ersetzung von Unterabfragen aus Dateien, das Durchlaufen von alphanumerischen Kombinationen und Listen nutzen, um die maximal mögliche Anzahl an Ergebnissen zu erhalten.

Gesammelte Daten

img

  • Anzahl der Produkte
  • Produktname
  • Link zum Produkt
  • Produktbild
  • Marke
  • Preis und alter Preis
  • Bewertung und Anzahl der Rezensionen
  • Größen und/oder Farben
  • Für Werbeanzeigen - Position in der Produktliste
  • Liste der Schlüsselwörter aus "Wird auch gesucht" und "Das könnte Ihnen auch gefallen"

Anwendungsfälle

  • Sammeln von Produktlinks
  • Bewertung der Produktpopularität
  • Verfolgung der Preisdynamik und der Beliebtheit von Produkten
  • Sammeln eines Arrays von Produktbildern
  • Bestimmung der Positionen von Werbeanzeigen

Abfragen

Als Abfragen können verwendet werden:

Links zu einer Produktliste einer Marke, zum Beispiel:

https://www.wildberries.ru/brands/kristiano-fashion
https://www.wildberries.ru/brands/s-a-s

Links zu einer Produktliste in einer Kategorie, zum Beispiel:

https://www.wildberries.ru/catalog/elektronika/razvlecheniya-i-gadzhety/igrovye-konsoli/playstation
https://www.wildberries.ru/catalog/avtotovary/shiny-i-diski/shiny

Schlüsselwörter, genau so, als ob Sie diese direkt in das Suchfeld von Wildberries eingeben würden, zum Beispiel:

xiaomi mi10
T-Shirts und Tanktops
Autoradio

Abfrage-Ersetzungen

Bei der Verwendung von Schlüsselwörtern als Abfragen können integrierte Makros zur Abfragevervielfachung genutzt werden, zum Beispiel wenn mehr Ergebnisse benötigt werden, als die normale Suchausgabe liefert.

Um beispielsweise für die oben genannten Schlüsselwörter im Abfrageformat eine Zeichenkombination von a bis zzzz zu durchlaufen, ermöglicht diese Methode eine maximale Rotation der Suchergebnisse und den Erhalt vieler neuer eindeutiger Ergebnisse:

$query {az:a:zzzz}

Dieses Makros erstellt 475254 zusätzliche Abfragen für jede ursprüngliche Suchanfrage, was insgesamt 4 x 475254 = 1901016 Suchanfragen ergibt. Eine beeindruckende Zahl, aber für A-Parser absolut kein Problem. Bei einer Geschwindigkeit von 2000 Abfragen pro Minute wird eine solche Aufgabe in nur 16 Stunden verarbeitet.

Varianten der Ergebnisausgabe

A-Parser unterstützt eine flexible Formatierung der Ergebnisse dank der integrierten Template-Engine Template Toolkit, was es ermöglicht, Ergebnisse in beliebiger Form sowie strukturiert, zum Beispiel als CSV oder JSON, auszugeben.

Ausgabe von Marke, Name und Preis

Ergebnisformat:

$items.format('$brand, $name, $price\n')

Beispielergebnis:

Xiaomi, Smartphone Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh, 23751
Realme, Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, 19911
Apple, Smartphone iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 GB, 54990
Apple, Smartphone iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB, 69990
Samsung, Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, 19791

Ausgabe mit Variablenbezeichnungen

Ergebnisformat:

$items.format('Marke: $brand, Name: $name, Preis: $price\n')

Beispielergebnis:

Marke: Samsung, Name: Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, Preis: 19791
Marke: Realme, Name: Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, Preis: 19911
Marke: Honor, Name: Smartphone Honor 50 / 6.57'' / 2340x1080 / OLED / 6 GB / 128 GB / 4300 mAh, Preis: 31490
Marke: Apple, Name: Smartphone iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 GB, Preis: 89990
Marke: Xiaomi, Name: Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh, Preis: 8990

Ergebnisformat:

[% USE d = date(format = '%Y %m %d %H:%M', locale = 'C');
FOREACH item IN items;
tools.CSVline(d.format(), item.name, item.price, item.link);
END %]

Beispielergebnis:

"2022 01 26 10:15","Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh*",8990,https://www.wildberries.ru/catalog/13615126/detail.aspx
"2022 01 26 10:15","Smartphone iPhone 13 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",74390,https://www.wildberries.ru/catalog/40640907/detail.aspx
"2022 01 26 10:15","Smartphone Galaxy S21 256GB / 6.2'' / Dynamic AMOLED / 8 GB / 256 GB / 4000 mAh*",64791,https://www.wildberries.ru/catalog/18592983/detail.aspx
"2022 01 26 10:15","Smartphone Galaxy M22 / 6.4'' / 720x1600 / Super AMOLED / 4 GB / 128 GB / 5000 mAh*",17280,https://www.wildberries.ru/catalog/41501725/detail.aspx

Ausgabe von Name, Preis und Rabattprozentsatz in einer CSV-Tabelle

Ergebnisformat:

[% USE Math;
FOREACH item IN items;
discount = item.oldPrice ? (item.oldPrice - item.price) / item.oldPrice * 100 : 0;
tools.CSVline(item.name, item.price, Math.int(discount + 0.5) _ '%');
END %]

Beispielergebnis:

"Smartphone Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh*",23751,12%
"Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh",19911,17%
"Smartphone iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",69990,0%
"Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh",19791,10%
"Smartphone galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 8 GB / 256 GB / 4500 mAh*",28691,18%

Ausgabe in eine CSV-Tabelle

Ergebnisformat:

[% FOREACH item IN items; 
tools.CSVline(item.link, item.name, item.price, item.oldPrice, item.rating, item.reviews);
END %]

Anfangstext:

Produktlink, Produktname, Preis, Alter Preis, Bewertung, Anzahl der Bewertungen

Beispielergebnis:

Produktlink, Produktname, Preis, Alter Preis, Bewertung, Anzahl der Bewertungen
https://www.wildberries.ru/catalog/54067214/detail.aspx,"Beanie Mütze Damen",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"Beanie Mütze Damen / Beanie mit Umschlag / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"Beanie Mütze Damen / Beanie mit Umschlag / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"Mütze mit Schal / mit Handschuhen / Beanie Damen",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"Baskenmütze",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"Baskenmütze mit Schal",3297,4710,5,307

Speichern im SQL-Format

Ergebnisformat:

[% FOREACH item IN items;
"INSERT INTO products VALUES('" _ item.name _ "', '"; item.link _ "', '"; item.price _ "', '"; item.brand _ "')\n";
END %]

Beispielergebnis:

INSERT INTO products VALUES('Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh*h', 'https://www.wildberries.ru/catalog/13615125/detail.aspx', '8990', 'Xiaomi')
INSERT INTO products VALUES('Smartphone galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 4 GB / 128 GB / 4500 mAh*h', 'https://www.wildberries.ru/catalog/23155682/detail.aspx', '24291', 'Samsung')
INSERT INTO products VALUES('Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh*h', 'https://www.wildberries.ru/catalog/13615126/detail.aspx', '8990', 'Xiaomi')

Dump der Ergebnisse in JSON

Allgemeines Ausgabeformat:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.items = [];

FOREACH item IN p1.items;
obj.items.push({
link = item.link
name = item.name
price = item.price
});
END;

obj.json %]

Anfangstext:

[

Endtext:

]

Beispielergebnis:

[
{
"query": "Smartphone",
"items": [
{
"link": "https://www.wildberries.ru/catalog/27379808/detail.aspx",
"name": "Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh",
"price": 19911
},
{
"link": "https://www.wildberries.ru/catalog/16023994/detail.aspx",
"name": "Smartphone iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 GB",
"price": 54990
},
{
"link": "https://www.wildberries.ru/catalog/15875669/detail.aspx",
"name": "Smartphone iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",
"price": 69990
},
...
]
},
...
]
Tipp

Damit die Optionen "Anfangstext" und "Endtext" im Task-Editor verfügbar sind, müssen Sie "Mehr Optionen" aktivieren.

Mögliche Einstellungen

ParameterStandardwertBeschreibung
Pages count5Anzahl der zu scrapenden Seiten
Sort byPopularitySortierung der Ergebnisse
AddressAdresse der Abholstation
LongitudeLängengrad der Abholstation
LatitudeBreitengrad der Abholstation
Hinweis

Standardmäßig zeigt Wildberries Ergebnisse für Moskau an. Im Parser besteht die Möglichkeit, eine Abholstation festzulegen, sodass die Ergebnisliste an einen bestimmten Standort gebunden wird. Dazu müssen 3 Parameter überschrieben werden: Address, Longitude und Latitude. Die erforderlichen Werte für diese Parameter können im Browser ermittelt werden:

1. Wählen Sie die gewünschte Abholstation aus, nachdem Sie zuvor die Entwicklertools geöffnet haben (in Chrome Taste F12)

img

2. Suchen Sie in den Entwicklertools auf dem Tab Netzwerk nach der Abfrage saveprefereduserloc und sehen Sie im Abfragekörper die benötigten Daten

img

3. Kopieren Sie diese exakt in die Parser-Einstellungen

img