Shop::Wildberries::ProductsList - extractor de lista de productos de Wildberries

Descripción general del extractor
Utilizando el extractor de productos de Wildberries, puede obtener datos sobre productos de los resultados de búsqueda por palabra clave o de una lista de productos de una categoría o marca específica. Con su ayuda, puede recopilar una base de enlaces a productos, monitorear la dinámica de precios de un producto, cambios en el número de reseñas o calificación, recopilar imágenes de productos o información sobre colores y tallas disponibles. También se recopila por separado una lista de anuncios publicitarios indicando la posición de cada uno en los resultados orgánicos. El extractor ofrece la posibilidad de establecer la clasificación de los resultados y especificar el punto de entrega.
La funcionalidad de A-Parser permite guardar la configuración de la extracción de datos para su uso posterior (ajustes preestablecidos), establecer un programa de extracción de datos y mucho más. Puede utilizar la multiplicación automática de consultas, la sustitución de subconsultas desde archivos, la iteración de combinaciones alfanuméricas y listas para obtener la mayor cantidad posible de resultados.
Datos recopilados

- Cantidad de productos
- Nombre del producto
- Enlace al producto
- Imagen del producto
- Marca
- Precio y precio anterior
- Calificación y número de reseñas
- Tallas y/o colores
- Para anuncios publicitarios: posición en la lista de productos
- Lista de claves de "También buscan" y "Quizás le interese"
Casos de uso
- Recopilación de enlaces a productos
- Evaluación de la popularidad de los productos
- Seguimiento de la dinámica de precios y popularidad de los productos
- Recopilación de un conjunto de imágenes de productos
- Determinación de las posiciones de los anuncios publicitarios
Consultas
Como consultas se pueden utilizar:
Enlaces a la lista de productos de una marca, por ejemplo:
https://www.wildberries.ru/brands/kristiano-fashion
https://www.wildberries.ru/brands/s-a-s
Enlaces a la lista de productos en una categoría, por ejemplo:
https://www.wildberries.ru/catalog/elektronika/razvlecheniya-i-gadzhety/igrovye-konsoli/playstation
https://www.wildberries.ru/catalog/avtotovary/shiny-i-diski/shiny
Palabras clave, exactamente igual que si las introdujera directamente en el formulario de búsqueda de Wildberries, por ejemplo:
xiaomi mi10
camisetas y remeras
radio para auto
Sustituciones de consultas
Al utilizar palabras clave como consultas, puede usar macros integradas para multiplicar las consultas, por ejemplo, si necesita obtener más resultados de los que ofrece el resultado de búsqueda normal.
Por ejemplo, para las palabras clave mencionadas anteriormente, en el formato de consulta indicaremos una iteración de caracteres de a a zzzz; este método permite rotar al máximo los resultados de búsqueda y obtener muchos resultados nuevos y únicos:
$query {az:a:zzzz}
Esta macro creará 475254 consultas adicionales por cada consulta de búsqueda inicial, lo que en total dará 4 x 475254 = 1901016 consultas de búsqueda; una cifra impresionante, pero no es ningún problema para A-Parser. Con una velocidad de 2000 consultas por minuto, tal tarea se procesará en solo 16 horas.
Opciones de salida de resultados
A-Parser admite un formateo flexible de resultados gracias al motor de plantillas integrado Template Toolkit, lo que le permite mostrar los resultados en forma arbitraria, así como en forma estructurada, por ejemplo, CSV o JSON.
Salida de marca, nombre y precio
Formato del resultado:
$items.format('$brand, $name, $price\n')
Ejemplo de resultado:
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
Salida con nombres de variables
Formato del resultado:
$items.format('Marca: $brand, Nombre: $name, Precio: $price\n')
Ejemplo de resultado:
Marca: Samsung, Nombre: Smartphone Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, Precio: 19791
Marca: Realme, Nombre: Smartphone realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, Precio: 19911
Marca: Honor, Nombre: Smartphone Honor 50 / 6.57'' / 2340x1080 / OLED / 6 GB / 128 GB / 4300 mAh, Precio: 31490
Marca: Apple, Nombre: Smartphone iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 GB, Precio: 89990
Marca: Xiaomi, Nombre: Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh, Precio: 8990
Salida del resultado con fecha de extracción de datos en una tabla CSV
Formato del resultado:
[% 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 %]
Ejemplo de resultado:
"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
Salida de nombre, precio y porcentaje de descuento del producto en una tabla CSV
Formato del resultado:
[% 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 %]
Ejemplo de resultado:
"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%
Salida en tabla CSV
Formato del resultado:
[% FOREACH item IN items;
tools.CSVline(item.link, item.name, item.price, item.oldPrice, item.rating, item.reviews);
END %]
Texto inicial:
Enlace al producto, Nombre del producto, Precio, Precio anterior, Calificación, Cantidad de reseñas
Ejemplo de resultado:
Enlace al producto, Nombre del producto, Precio, Precio anterior, Calificación, Cantidad de reseñas
https://www.wildberries.ru/catalog/54067214/detail.aspx,"Gorro beanie mujer",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"Gorro beanie mujer / beanie con dobladillo / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"Gorro beanie mujer / beanie con dobladillo / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"Gorro con bufanda / con guantes / beanie mujer",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"Boina",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"Boina con bufanda",3297,4710,5,307
Guardado en formato SQL
Formato del resultado:
[% FOREACH item IN items;
"INSERT INTO products VALUES('" _ item.name _ "', '"; item.link _ "', '"; item.price _ "', '"; item.brand _ "')\n";
END %]
Ejemplo de resultado:
INSERT INTO products VALUES('Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 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 GB / 128 GB / 4500 mAh', 'https://www.wildberries.ru/catalog/23155682/detail.aspx', '24291', 'Samsung')
INSERT INTO products VALUES('Smartphone 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh', 'https://www.wildberries.ru/catalog/13615126/detail.aspx', '8990', 'Xiaomi')
Volcado de resultados en JSON
Formato general del resultado:
[% 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 %]
Texto inicial:
[
Texto final:
]
Ejemplo de resultado:
[
{
"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
},
...
]
},
...
]
Para que las opciones "Texto inicial" y "Texto final" estén disponibles en el Editor de tareas, debe activar "Más opciones".
Configuraciones posibles
| Parámetro | Valor por defecto | Descripción |
|---|---|---|
| Pages count | 5 | Cantidad de páginas para extraer |
| Sort by | Popularity | Clasificación de resultados |
| Address | Dirección del punto de entrega | |
| Longitude | Longitud del punto de entrega | |
| Latitude | Latitud del punto de entrega |
Por defecto, Wildberries muestra los resultados para Moscú. En el extractor existe la posibilidad de establecer un punto de entrega y la lista de resultados estará vinculada a una ubicación específica. Para hacer esto, debe redefinir 3 parámetros: Address, Longitude y Latitude. Puede obtener los valores necesarios para estos parámetros en el navegador:
1. Seleccionamos el punto de entrega deseado, habiendo abierto previamente las Herramientas de desarrollador (en Chrome tecla F12)

2. En las Herramientas de desarrollador, en la pestaña Red buscamos la consulta saveprefereduserloc y en el cuerpo de la consulta vemos los datos necesarios

3. Los copiamos exactamente en la configuración del extractor
