Shop::Wildberries::ProductsList - Scraper per l'elenco prodotti Wildberries

Panoramica dello scraper
Utilizzando lo scraper di prodotti Wildberries, puoi ottenere dati sui prodotti dai risultati di ricerca per parola chiave o da un elenco di prodotti di una categoria o di un marchio specifico. Con il suo aiuto, puoi raccogliere un database di link ai prodotti, monitorare la dinamica dei prezzi, le variazioni del numero di recensioni o del rating, raccogliere immagini dei prodotti o informazioni su colori e taglie disponibili. Inoltre, viene raccolto separatamente un elenco di annunci pubblicitari con l'indicazione della posizione di ciascuno nei risultati organici. Lo scraper offre la possibilità di impostare l'ordinamento dei risultati e specificare il punto di ritiro.
La funzionalità di A-Parser consente di salvare le impostazioni di scraping per un uso futuro (preset), impostare pianificazioni di scraping e molto altro. Puoi utilizzare la generazione automatica delle query, la sostituzione di sotto-query da file, l'iterazione di combinazioni alfanumeriche ed elenchi per ottenere il massimo numero possibile di risultati.
Dati raccolti

- Numero di prodotti
- Nome del prodotto
- Link al prodotto
- Immagine del prodotto
- Brand
- Prezzo e prezzo precedente
- Rating e numero di recensioni
- Taglie e/o colori
- Per gli annunci pubblicitari - posizione nell'elenco dei prodotti
- Elenco di chiavi da "Cercano anche" e "Potrebbe piacerti"
Casi d'uso
- Raccolta di link ai prodotti
- Valutazione della popolarità dei prodotti
- Monitoraggio della dinamica dei prezzi e della popolarità dei prodotti
- Raccolta di un set di immagini dei prodotti
- Determinazione delle posizioni degli annunci pubblicitari
Query
Come query è possibile utilizzare:
Link all'elenco dei prodotti di un brand, ad esempio:
https://www.wildberries.ru/brands/kristiano-fashion
https://www.wildberries.ru/brands/s-a-s
Link all'elenco dei prodotti in una categoria, ad esempio:
https://www.wildberries.ru/catalog/elektronika/razvlecheniya-i-gadzhety/igrovye-konsoli/playstation
https://www.wildberries.ru/catalog/avtotovary/shiny-i-diski/shiny
Parole chiave, esattamente come se le inserissi direttamente nel modulo di ricerca di Wildberries, ad esempio:
xiaomi mi10
t-shirt e canotte
autoradio
Sostituzioni nelle query
Quando si utilizzano parole chiave come query, è possibile utilizzare le macro integrate per la moltiplicazione delle query, ad esempio se è necessario ottenere più risultati di quelli forniti da una normale ricerca.
Ad esempio, per le parole chiave sopra elencate, nel formato della query specifichiamo l'iterazione dei caratteri da a a zzzz; questo metodo consente di ruotare al massimo i risultati di ricerca e ottenere molti nuovi risultati unici:
$query {az:a:zzzz}
Questa macro creerà 475254 query aggiuntive per ogni query di ricerca iniziale, il che darà un totale di 4 x 475254 = 1901016 query di ricerca; una cifra impressionante, ma non è affatto un problema per A-Parser. Con una velocità di 2000 query al minuto, tale attività verrà elaborata in sole 16 ore.
Varianti di output dei risultati
A-Parser supporta una formattazione flessibile dei risultati grazie al motore di template integrato Template Toolkit, che gli consente di produrre risultati in forma libera, così come in forma strutturata, ad esempio CSV o JSON
Output di brand, nome e prezzo
Formato del risultato:
$items.format('$brand, $name, $price\n')
Esempio di risultato:
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
Output con i nomi delle variabili
Formato del risultato:
$items.format('Brand: $brand, Nome: $name, Prezzo: $price\n')
Esempio di risultato:
Brand: Samsung, Nome: Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, Prezzo: 19791
Brand: Realme, Nome: Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, Prezzo: 19911
Brand: Honor, Nome: Smartphone Honor 50 / 6.57'' / 2340x1080 / OLED / 6 GB / 128 GB / 4300 mAh, Prezzo: 31490
Brand: Apple, Nome: Smartphone iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 GB, Prezzo: 89990
Brand: Xiaomi, Nome: Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh, Prezzo: 8990
Output del risultato con data di scraping in una tabella CSV
Formato del risultato:
[% 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 %]
Esempio di risultato:
"2022 01 26 10:15","Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh*h",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*h",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*h",17280,https://www.wildberries.ru/catalog/41501725/detail.aspx
Output di nome, prezzo e percentuale di sconto sul prodotto in una tabella CSV
Formato del risultato:
[% 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 %]
Esempio di risultato:
"Smartphone Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh*h",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*h",28691,18%
Output in una tabella CSV
Formato del risultato:
[% FOREACH item IN items;
tools.CSVline(item.link, item.name, item.price, item.oldPrice, item.rating, item.reviews);
END %]
Testo iniziale:
Link al prodotto, Nome del prodotto, Prezzo, Prezzo precedente, Rating, Numero di recensioni
Esempio di risultato:
Link al prodotto, Nome del prodotto, Prezzo, Prezzo precedente, Rating, Numero di recensioni
https://www.wildberries.ru/catalog/54067214/detail.aspx,"Berretto beanie donna",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"Berretto beanie donna / beanie con risvolto / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"Berretto beanie donna / beanie con risvolto / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"Berretto con sciarpa / con guanti / beanie donna",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"Basco",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"Basco con sciarpa",3297,4710,5,307
Salvataggio in formato SQL
Formato del risultato:
[% FOREACH item IN items;
"INSERT INTO products VALUES('" _ item.name _ "', '"; item.link _ "', '"; item.price _ "', '"; item.brand _ "')\n";
END %]
Esempio di risultato:
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 dei risultati in JSON
Formato comune del risultato:
[% 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 %]
Testo iniziale:
[
Testo finale:
]
Esempio di risultato:
[
{
"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
},
...
]
},
...
]
Affinché le opzioni "Prepend text" e "Append text" siano disponibili nell'Editor delle attività, è necessario attivare "More options".
Impostazioni possibili
| Parametro | Valore predefinito | Descrizione |
|---|---|---|
| Pages count | 5 | Numero di pagine da sottoporre a scraping |
| Sort by | Popularity | Ordinamento dei risultati |
| Address | Indirizzo del punto di ritiro | |
| Longitude | Longitudine del punto di ritiro | |
| Latitude | Latitudine del punto di ritiro |
Per impostazione predefinita Wildberries mostra i risultati per Mosca. Nello scraper è possibile impostare un punto di ritiro e l'elenco dei risultati sarà legato a una posizione specifica. Per farlo, è necessario sovrascrivere 3 parametri: Address, Longitude e Latitude. È possibile ottenere i valori necessari per questi parametri nel browser:
1. Scegliamo il punto di ritiro desiderato, dopo aver aperto gli Strumenti per sviluppatori (in Chrome tasto F12)

2. Nella scheda «Network» cerchiamo la richiesta create?version=1 e copiamo i dati nelle impostazioni dello scraper
Dopo aver scelto il punto di ritiro, aprite la scheda Rete (in Chrome in inglese — Network). Trovate la richiesta create?version=1, nella risposta (Preview) copiate address, lat e lon nei campi Address, Latitude e Longitude dello scraper, rispettivamente.
