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

Ü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

- 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
Ausgabe des Ergebnisses mit Erfassungsdatum in einer CSV-Tabelle
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
},
...
]
},
...
]
Damit die Optionen "Anfangstext" und "Endtext" im Task-Editor verfügbar sind, müssen Sie "Mehr Optionen" aktivieren.
Mögliche Einstellungen
| Parameter | Standardwert | Beschreibung |
|---|---|---|
| Pages count | 5 | Anzahl der zu scrapenden Seiten |
| Sort by | Popularity | Sortierung der Ergebnisse |
| Address | Adresse der Abholstation | |
| Longitude | Längengrad der Abholstation | |
| Latitude | Breitengrad der Abholstation |
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)

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

3. Kopieren Sie diese exakt in die Parser-Einstellungen
