Shop::Wildberries::ProductsList - парсер списка товаров Wildberries
Обзор парсера
Используя парсер товаров Wildberries, вы можете получать данные о товарах из результатов поиска по ключевому слову или из списка товаров конкретной категории или бренда. С его помощью можно собрать базу ссылок на товары, отслеживать динамику цен на товар, изменения количества отзывов или рейтинга, собрать картинки товаров или информацию о доступных цветах и размерах. Также отдельно собирается список рекламных обьявлений с указанием позиции каждого в органической выдаче. Парсер предоставляет возможность задавать сортировку результатов и указывать пункт выдачи.
Функционал A-Parser позволяет сохранять настройки парсинга для дальнейшего использования (пресеты), задавать расписание парсинга и многое другое. Вы можете использовать автоматическое размножение запросов, подстановку подзапросов из файлов, перебор цифро-буквенных комбинаций и списков для получения максимально возможного количества результатов.
Собираемые данные
- Количество товаров
- Название товара
- Ссылка на товар
- Картинка товара
- Бренд
- Цена и старая цена
- Рейтинг и число отзывов
- Размеры и/или цвета
- Для рекламных обьявлений - позиция в списке товаров
- Список ключей из "Еще ищут" и "Возможно вам понравится"
Варианты использования
- Сбор ссылок на товары
- Оценка популярности товаров
- Отслеживание динамики цен и популярности товаров
- Сбор массива изображений товаров
- Определение позиций рекламных обьявлений
Запросы
В качестве запросов можно использовать:
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
Вывод результата с датой парсинга в таблицу CSV
Формат результата:
[% 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 count | 5 | Количество страниц для парсинга |
Sort by | Popularity | Сортировка результатов |
Address | Адрес пункта выдачи | |
Longitude | Долгота пункта выдачи | |
Latitude | Широта пункта выдачи |
По умолчанию Wildberries отображает результаты для Москвы. В парсере есть возможность задать пункт выдачи и список результатов будет привязан к конкретной локации. Чтобы это сделать, нужно переопределить 3 параметра: Address, Longitude и Latitude. Получить необходимые значения для этих параметров можно в браузере:
1. Выбираем нужный пункт выдачи, предварительно открыв Инструменты разработчика (в Chrome клавиша F12)
2. В Инструментах разработчика на вкладке Сеть ищем запрос saveprefereduserloc и в теле запроса видим нужные данные
3. Копируем их в точности в настройки парсера