Shop::Wildberries::ProductsList - scraper de liste de produits Wildberries

Aperçu du scraper
En utilisant le scraper de produits Wildberries, vous pouvez obtenir des données sur les produits à partir des résultats de recherche par mot-clé ou d'une liste de produits d'une catégorie ou d'une marque spécifique. Grâce à lui, il est possible de constituer une base de liens vers les produits, de suivre la dynamique des prix, les changements dans le nombre d'avis ou la note, de collecter des images de produits ou des informations sur les couleurs et tailles disponibles. De plus, une liste d'annonces publicitaires est collectée séparément avec l'indication de la position de chacune dans les résultats organiques. Le scraper offre la possibilité de définir le tri des résultats et de spécifier un point de retrait.
La fonctionnalité d'A-Parser permet de sauvegarder les paramètres de collecte de données pour une utilisation ultérieure (présélections), de définir un calendrier de collecte et bien plus encore. Vous pouvez utiliser la multiplication automatique des requêtes, la substitution de sous-requêtes à partir de fichiers, l'itération de combinaisons alphanumériques et de listes pour obtenir le maximum de résultats possible.
Données collectées

- Nombre de produits
- Nom du produit
- Lien vers le produit
- Image du produit
- Marque
- Prix et ancien prix
- Note et nombre d'avis
- Tailles et/ou couleurs
- Pour les annonces publicitaires - position dans la liste des produits
- Liste de mots-clés issus de "Recherches associées" et "Vous pourriez aussi aimer"
Variantes d'utilisation
- Collecte de liens vers les produits
- Évaluation de la popularité des produits
- Suivi de la dynamique des prix et de la popularité des produits
- Collecte d'un ensemble d'images de produits
- Détermination des positions des annonces publicitaires
Requêtes
Comme requêtes, vous pouvez utiliser :
Des liens vers la liste des produits d'une marque, par exemple :
https://www.wildberries.ru/brands/kristiano-fashion
https://www.wildberries.ru/brands/s-a-s
Des liens vers la liste des produits d'une catégorie, par exemple :
https://www.wildberries.ru/catalog/elektronika/razvlecheniya-i-gadzhety/igrovye-konsoli/playstation
https://www.wildberries.ru/catalog/avtotovary/shiny-i-diski/shiny
Des mots-clés, exactement comme si vous les saisissiez directement dans le formulaire de recherche de Wildberries, par exemple :
xiaomi mi10
t-shirts et débardeurs
autoradio
Substitutions de requêtes
Lors de l'utilisation de mots-clés comme requêtes, vous pouvez utiliser les macros intégrées pour multiplier les requêtes, par exemple si vous avez besoin d'obtenir plus de résultats que n'en fournit la recherche standard.
Par exemple, pour les mots-clés mentionnés ci-dessus, indiquons dans le format de requête une itération de caractères de a à zzzz, cette méthode permet de faire pivoter au maximum les résultats de recherche et d'obtenir de nombreux nouveaux résultats uniques :
$query {az:a:zzzz}
Cette macro créera 475254 requêtes supplémentaires pour chaque requête de recherche initiale, ce qui donnera au total 4 x 475254 = 1901016 requêtes de recherche, un chiffre impressionnant, mais ce n'est pas du tout un problème pour A-Parser. À une vitesse de 2000 requêtes par minute, une telle tâche sera traitée en seulement 16 heures.
Variantes d'affichage des résultats
A-Parser supporte un formatage flexible des résultats grâce au moteur de gabarit intégré Template Toolkit, ce qui lui permet d'afficher les résultats sous n'importe quelle forme, ainsi que dans des formats structurés comme CSV ou JSON
Affichage de la marque, du nom et du prix
Format du résultat :
$items.format('$brand, $name, $price\n')
Exemple de résultat :
Xiaomi, Smartphone Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 Go / 256 Go / 5160 mAh, 23751
Realme, Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 Go / 128 Go / 5000 mAh, 19911
Apple, Smartphone iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 Go, 54990
Apple, Smartphone iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 Go, 69990
Samsung, Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 Go / 128 Go / 5000 mAh, 19791
Affichage avec les noms des variables
Format du résultat :
$items.format('Marque : $brand, Nom : $name, Prix : $price\n')
Exemple de résultat :
Marque : Samsung, Nom : Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 Go / 128 Go / 5000 mAh, Prix : 19791
Marque : Realme, Nom : Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 Go / 128 Go / 5000 mAh, Prix : 19911
Marque : Honor, Nom : Smartphone Honor 50 / 6.57'' / 2340x1080 / OLED / 6 Go / 128 Go / 4300 mAh, Prix : 31490
Marque : Apple, Nom : Smartphone iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 Go, Prix : 89990
Marque : Xiaomi, Nom : Smartphone 6.53'' / 1600x720 / 2 Go / 32 Go / 5000 mAh, Prix : 8990
Affichage du résultat avec la date de collecte dans un tableau CSV
Format du résultat :
[% 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 %]
Exemple de résultat :
"2022 01 26 10:15","Smartphone 6.53'' / 1600x720 / 2 Go / 32 Go / 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 Go",74390,https://www.wildberries.ru/catalog/40640907/detail.aspx
"2022 01 26 10:15","Smartphone Galaxy S21 256GB / 6.2'' / Dynamic AMOLED / 8 Go / 256 Go / 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 Go / 128 Go / 5000 mAh*h",17280,https://www.wildberries.ru/catalog/41501725/detail.aspx
Affichage du nom, du prix et du pourcentage de remise sur le produit dans un tableau CSV
Format du résultat :
[% 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 %]
Exemple de résultat :
"Smartphone Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 Go / 256 Go / 5160 mAh*h",23751,12%
"Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 Go / 128 Go / 5000 mAh",19911,17%
"Smartphone iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 Go",69990,0%
"Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 Go / 128 Go / 5000 mAh",19791,10%
"Smartphone galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 8 Go / 256 Go / 4500 mAh*h",28691,18%
Affichage dans un tableau CSV
Format du résultat :
[% FOREACH item IN items;
tools.CSVline(item.link, item.name, item.price, item.oldPrice, item.rating, item.reviews);
END %]
Texte initial :
Lien vers le produit, Nom du produit, Prix, Ancien prix, Note, Nombre d'avis
Exemple de résultat :
Lien vers le produit, Nom du produit, Prix, Ancien prix, Note, Nombre d'avis
https://www.wildberries.ru/catalog/54067214/detail.aspx,"Bonnet beanie femme",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"Bonnet beanie femme / beanie à revers / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"Bonnet beanie femme / beanie à revers / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"Bonnet avec écharpe / avec gants / beanie femme",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"Béret",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"Béret avec écharpe",3297,4710,5,307
Sauvegarde au format SQL
Format du résultat :
[% FOREACH item IN items;
"INSERT INTO products VALUES('" _ item.name _ "', '"; item.link _ "', '"; item.price _ "', '"; item.brand _ "')\n";
END %]
Exemple de résultat :
INSERT INTO products VALUES('Smartphone 6.53'' / 1600x720 / 2 Go / 32 Go / 5000 mAh', 'https://www.wildberries.ru/catalog/13615125/detail.aspx', '8990', 'Xiaomi')
INSERT INTO products VALUES('Smartphone galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 4 Go / 128 Go / 4500 mAh', 'https://www.wildberries.ru/catalog/23155682/detail.aspx', '24291', 'Samsung')
INSERT INTO products VALUES('Smartphone 6.53'' / 1600x720 / 2 Go / 32 Go / 5000 mAh', 'https://www.wildberries.ru/catalog/13615126/detail.aspx', '8990', 'Xiaomi')
Dump des résultats en JSON
Format de sortie general:
[% 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 %]
Texte initial:
[
Texte final:
]
Exemple de résultat :
[
{
"query": "smartphone",
"items": [
{
"link": "https://www.wildberries.ru/catalog/27379808/detail.aspx",
"name": "Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 Go / 128 Go / 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 Go",
"price": 54990
},
{
"link": "https://www.wildberries.ru/catalog/15875669/detail.aspx",
"name": "Smartphone iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 Go",
"price": 69990
},
...
]
},
...
]
Pour que les options "Texte initial" et "Texte final" soient disponibles dans l'Éditeur de tâches, vous devez activer "Plus d'options".
Paramètres possibles
| Paramètre | Valeur par défaut | Description |
|---|---|---|
| Pages count | 5 | Nombre de pages à scraper |
| Sort by | Popularity | Tri des résultats |
| Address | Adresse du point de retrait | |
| Longitude | Longitude du point de retrait | |
| Latitude | Latitude du point de retrait |
Par défaut, Wildberries affiche les résultats pour Moscou. Dans le scraper, il est possible de définir un point de retrait et la liste des résultats sera liée à un emplacement spécifique. Pour ce faire, vous devez redéfinir 3 paramètres : Address, Longitude et Latitude. Vous pouvez obtenir les valeurs nécessaires pour ces paramètres dans le navigateur :
1. Choisissez le point de retrait souhaité, après avoir ouvert les Outils de développement (F12 dans Chrome)

2. Dans les Outils de développement, sous l'onglet Réseau, cherchez la requête saveprefereduserloc et vous verrez les données nécessaires dans le corps de la requête

3. Copiez-les exactement dans les paramètres du scraper
