Перейти к основному содержимому

Shop::Wildberries::ProductsList - парсер списка товаров Wildberries

img

Обзор парсера

Используя парсер товаров Wildberries, вы можете получать данные о товарах из результатов поиска по ключевому слову или из списка товаров конкретной категории или бренда. С его помощью можно собрать базу ссылок на товары, отслеживать динамику цен на товар, изменения количества отзывов или рейтинга, собрать картинки товаров или информацию о доступных цветах и размерах. Также отдельно собирается список рекламных обьявлений с указанием позиции каждого в органической выдаче. Парсер предоставляет возможность задавать сортировку результатов и указывать пункт выдачи.

Функционал A-Parser позволяет сохранять настройки парсинга для дальнейшего использования (пресеты), задавать расписание парсинга и многое другое. Вы можете использовать автоматическое размножение запросов, подстановку подзапросов из файлов, перебор цифро-буквенных комбинаций и списков для получения максимально возможного количества результатов.

Собираемые данные

img

  • Количество товаров
  • Название товара
  • Ссылка на товар
  • Картинка товара
  • Бренд
  • Цена и старая цена
  • Рейтинг и число отзывов
  • Размеры и/или цвета
  • Для рекламных обьявлений - позиция в списке товаров
  • Список ключей из "Еще ищут" и "Возможно вам понравится"

Варианты использования

  • Сбор ссылок на товары
  • Оценка популярности товаров
  • Отслеживание динамики цен и популярности товаров
  • Сбор массива изображений товаров
  • Определение позиций рекламных обьявлений

Запросы

В качестве запросов можно использовать:

Cсылки на список товаров бренда, например:

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

Cсылки на список товаров в категории, например:

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

Ключевые слова, точно так же, как если бы вы их вводили прямо в форму поиска Wildberries, например:

xiaomi mi10
футболки и майки
магнитола

Подстановки запросов

При использовании в качестве запросов ключевых слов можно использовать встроенные макросы для разможения запросов, например если требуется получить больше результатов, чем предоставляет обычная поисковая выдача.

Например, для вышеперечисленных ключевых слов в формате запроса укажем перебор символов от a до zzzz, данный метод позволяет максимально ротировать поисковую выдачу и получать множество новых уникальных результатов:

$query {az:a:zzzz}

Данный макрос создаст 475254 дополнительных запросов на каждый исходный поисковый запрос, что в сумме даст 4 х 475254 = 1901016 поисковых запроса, цифра впечатляющая, но это совсем не проблема для A-Parser'а. При скорости 2000 запросов в минуту такое задание обработается всего за 16 часов.

Варианты вывода результатов

A-Parser поддерживает гибкое форматирование результатов благодаря встроенному шаблонизатору Template Toolkit, что позволяет ему выводить результаты в произвольной форме, а также в структуированной, например CSV или JSON

Вывод бренда, названия и цены

Формат результата:

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

Пример результата:

Xiaomi, Смартфон Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 ГБ / 256 ГБ / 5160 мА*ч, 23751
Realme, Смартфон realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 ГБ / 128 ГБ / 5000 mAh, 19911
Apple, Смартфон iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 ГБ, 54990
Apple, Смартфон iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 ГБ, 69990
Samsung, Смартфон Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 ГБ / 128 ГБ / 5000 мАч, 19791

Вывод c названиями переменных

Формат результата:

$items.format('Бренд: $brand, Название: $name, Цена: $price\n')

Пример результата:

Бренд: Samsung, Название: Смартфон Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 ГБ / 128 ГБ / 5000 мАч, Цена: 19791
Бренд: Realme, Название: Смартфон realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 ГБ / 128 ГБ / 5000 mAh, Цена: 19911
Бренд: Honor, Название: Смартфон Honor 50 / 6.57'' / 2340x1080 / OLED / 6 ГБ / 128 ГБ / 4300 мА*ч, Цена: 31490
Бренд: Apple, Название: Смартфон iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 ГБ, Цена: 89990
Бренд: Xiaomi, Название: Смартфон 6.53'' / 1600x720 / 2 ГБ / 32 ГБ / 5000 мА*ч, Цена: 8990

Формат результата:

[% 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 %]

Пример результата:

"2022 01 26 10:15","Смартфон 6.53'' / 1600x720 / 2 ГБ / 32 ГБ / 5000 мА*ч",8990,https://www.wildberries.ru/catalog/13615126/detail.aspx
"2022 01 26 10:15","Смартфон iPhone 13 128GB / 6.1'' / 2532x1170 / OLED / 128 ГБ",74390,https://www.wildberries.ru/catalog/40640907/detail.aspx
"2022 01 26 10:15","Смартфон Galaxy S21 256GB / 6.2'' / Dynamic AMOLED / 8 ГБ / 256 ГБ / 4000 мА*ч",64791,https://www.wildberries.ru/catalog/18592983/detail.aspx
"2022 01 26 10:15","Смартфон Galaxy M22 / 6.4'' / 720x1600 / Super AMOLED / 4 ГБ / 128 ГБ / 5000 мAh",17280,https://www.wildberries.ru/catalog/41501725/detail.aspx

Вывод названия, цены и процента скидки на товар в таблицу CSV

Формат результата:

[% 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 %]

Пример результата:

"Смартфон Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 ГБ / 256 ГБ / 5160 мА*ч",23751,12%
"Смартфон realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 ГБ / 128 ГБ / 5000 mAh",19911,17%
"Смартфон iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 ГБ",69990,0%
"Смартфон Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 ГБ / 128 ГБ / 5000 мАч",19791,10%
"Смартфон galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 8 ГБ / 256 ГБ / 4500 мА*ч",28691,18%

Вывод в таблицу CSV

Формат результата:

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

Начальный текст:

Ссылка на товар, Название товара, Цена, Старая цена, Рейтинг, Количество отзывов

Приимер результата:

Ссылка на товар, Название товара, Цена, Старая цена, Рейтинг, Количество отзывов
https://www.wildberries.ru/catalog/54067214/detail.aspx,"Шапка бини женская",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"Шапка бини женская / бини с отворотом / Бини (beanie)",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"Шапка бини женская / бини с отворотом / Бини (beanie)",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"Шапка с шарфом / с перчатками / бини женская",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"Берет",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"Берет с шарфом",3297,4710,5,307

Сохранение в формате SQL

Формат результата:

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

Пример результата:

INSERT INTO products VALUES('Смартфон 6.53'' / 1600x720 / 2 ГБ / 32 ГБ / 5000 мА*ч', 'https://www.wildberries.ru/catalog/13615125/detail.aspx', '8990', 'Xiaomi')
INSERT INTO products VALUES('Смартфон galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 4 ГБ / 128 ГБ / 4500 мА*ч', 'https://www.wildberries.ru/catalog/23155682/detail.aspx', '24291', 'Samsung')
INSERT INTO products VALUES('Смартфон 6.53'' / 1600x720 / 2 ГБ / 32 ГБ / 5000 мА*ч', 'https://www.wildberries.ru/catalog/13615126/detail.aspx', '8990', 'Xiaomi')

Дамп результатов в JSON

Общий формат результата:

[% 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 %]

Начальный текст:

[

Конечный текст:

]

Пример результата:

[
{
"query": "смартфон",
"items": [
{
"link": "https://www.wildberries.ru/catalog/27379808/detail.aspx",
"name": "Смартфон realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 ГБ / 128 ГБ / 5000 mAh",
"price": 19911
},
{
"link": "https://www.wildberries.ru/catalog/16023994/detail.aspx",
"name": "Смартфон iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 ГБ",
"price": 54990
},
{
"link": "https://www.wildberries.ru/catalog/15875669/detail.aspx",
"name": "Смартфон iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 ГБ",
"price": 69990
},
...
]
},
...
]
подсказка

Чтобы опции "Начальный текст" и "Конечный текст" были доступны в Редакторе заданий, нужно активировать "Больше опций".

Возможные настройки

ПараметрЗначение по умолчаниюОписание
Pages count5Количество страниц для парсинга
Sort byPopularityСортировка результатов
AddressАдрес пункта выдачи
LongitudeДолгота пункта выдачи
LatitudeШирота пункта выдачи
примечание

По умолчанию Wildberries отображает результаты для Москвы. В парсере есть возможность задать пункт выдачи и список результатов будет привязан к конкретной локации. Чтобы это сделать, нужно переопределить 3 параметра: Address, Longitude и Latitude. Получить необходимые значения для этих параметров можно в браузере:

1. Выбираем нужный пункт выдачи, предварительно открыв Инструменты разработчика (в Chrome клавиша F12)

img

2. В Инструментах разработчика на вкладке Сеть ищем запрос saveprefereduserloc и в теле запроса видим нужные данные

img

3. Копируем их в точности в настройки парсера

img