Shop::Yandex::Market - Парсер товаров с Яндекс.Маркет

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

- Название товара
 - Ссылка на товар
 - Картинка товара
 - Цена и старая цена
 - Валюта
 - Рейтинг и число комментариев
 - Количество продавцов
 - Дополнительная информация
 - Количество покупок и просмотров товара
 
Варианты использования
- Сбор ссылок на товары
 - Оценка популярности товаров
 - Отслеживание динамики цен и популярности товаров
 
Запросы
В качестве запросов необходимо указывать ключевые слова или ссылку на категорию, например:
xiaomi redmi note
https://market.yandex.ru/catalog/54726/list?local-offers-first=0&deliveryincluded=0&onstock=1ы
Варианты вывода результатов
A-Parser поддерживает гибкое форматирование результатов благодаря встроенному шаблонизатору Template Toolkit, что позволяет ему выводить результаты в произвольной форме, а также в структуированной, например CSV или JSON
Вывод названия, минимальной цены и рейтинга товара
Формат результата:
$products.format('Название: $title, Минимальная цена: $amountfrom, Рейтинг: $rating\n')
Пример результата:
Название: Смартфон Apple iPhone 11 64GB, Минимальная цена: 46 244,  Рейтинг: 4.7
Название: Смартфон Apple iPhone Xr 64GB, Минимальная цена: 36 990,  Рейтинг: 4.7
Название: Смартфон Apple iPhone 12 64GB, Минимальная цена: 60 840,  Рейтинг: 4.7
Название: Смартфон Apple iPhone SE 2020 64GB, Минимальная цена: 33 490,  Рейтинг: 4.5
Название: Смартфон Apple iPhone Xr 128GB, Минимальная цена: 43 450,  Рейтинг: 4.7
Вывод в таблицу CSV
Формат результата:
[% FOREACH item IN products;   
    tools.CSVline(item.cardlink, item.title, item.amountfrom, item.rating, item.commentscount);  
END %]
Приимер результата:
https://market.yandex.ru/product--smartfon-apple-iphone-11-64gb/558171067?nid=54726&show-uid=16206538929466307988916001&context=search&text=iphone&sku=101106266737,"Смартфон Apple iPhone 11 64GB","46 244",4.7,810
https://market.yandex.ru/product--smartfon-apple-iphone-xr-64gb/175941311?nid=54726&show-uid=16206538929466307988916002&context=search&text=iphone&sku=101103379766,"Смартфон Apple iPhone Xr 64GB","36 990",4.7,624
https://market.yandex.ru/product--smartfon-apple-iphone-12-64gb/722976004?nid=54726&show-uid=16206538929466307988916003&context=search&text=iphone&sku=101077347750,"Смартфон Apple iPhone 12 64GB","60 840",4.7,103
https://market.yandex.ru/product--smartfon-apple-iphone-se-2020-64gb/661221015?nid=54726&show-uid=16206538929466307988916004&context=search&text=iphone&sku=101099789863,"Смартфон Apple iPhone SE 2020 64GB","33 490",4.5,358
Начальный текст:
Ссылка на товар, Название товара, Минимальная цена, Рейтинг, Количество комментариев
В Формате результатов применяется шаблонизатор Template Toolkit для вывода массива $products в цикле FOREACH.  
Чтобы опция "Начальный текст" была доступна в Редакторе заданий, нужно активировать "Больше опций". В "Начальный текст" записываем названия столбцов через запятую и второй строку делаем пустой.
Сохранение в формате SQL
Формат результата:
[% FOREACH item IN products;
    "INSERT INTO products VALUES('" _ item.title _ "', '"; item.cardlink _ "', '"; item.amountfrom _ "', '"; item.rating _ "')\n";
END %]
Пример результата:
INSERT INTO products VALUES('Смартфон Apple iPhone 11 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-11-64gb/558171067?nid=54726&show-uid=16206542754162480526716001&context=search&text=iphone&sku=101106266737', '46 244', '4.7')
INSERT INTO products VALUES('Смартфон Apple iPhone Xr 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-xr-64gb/175941311?nid=54726&show-uid=16206542754162480526716002&context=search&text=iphone&sku=101103379766', '36 990', '4.7')
INSERT INTO products VALUES('Смартфон Apple iPhone 12 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-12-64gb/722976004?nid=54726&show-uid=16206542754162480526716003&context=search&text=iphone&sku=101077347750', '60 840', '4.7')
INSERT INTO products VALUES('Смартфон Apple iPhone SE 2020 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-se-2020-64gb/661221015?nid=54726&show-uid=16206542754162480526716004&context=search&text=iphone&sku=101099789863', '33 490', '4.5')
Дамп результатов в JSON
Общий формат результата:
[% IF notFirst;
  ",\n";
ELSE;
  notFirst = 1;
END;
obj = {};
obj.query = query;
obj.items = [];
FOREACH item IN p1.products;
    obj.items.push({
        link = item.cardlink
        name = item.title
        amountfrom = item.amountfrom
    });
END;
obj.json %]
Начальный текст:
[
Конечный текст:
]
Пример результата:
[
    {
        "query": "https://market.yandex.ru/catalog--mobilnye-telefony/54726/list?text=iphone&hid=91491&was_redir=1&rt=10&cpa=0&onstock=0&local-offers-first=0",
        "items": [
            {
                "link": "https://market.yandex.ru/product--smartfon-apple-iphone-11-64gb/558171067?nid=54726&show-uid=16206548825917275667016001&context=search&text=iphone&sku=101106266737",
                "amountfrom": "46 244",
                "name": "Смартфон Apple iPhone 11 64GB"
            },
            {
                "link": "https://market.yandex.ru/product--smartfon-apple-iphone-xr-64gb/175941311?nid=54726&show-uid=16206548825917275667016002&context=search&text=iphone&sku=101103379766",
                "amountfrom": "36 990",
                "name": "Смартфон Apple iPhone Xr 64GB"
            },
            {
                "link": "https://market.yandex.ru/product--smartfon-apple-iphone-12-64gb/722976004?nid=54726&show-uid=16206548825917275667016003&context=search&text=iphone&sku=101077347750",
                "amountfrom": "60 840",
                "name": "Смартфон Apple iPhone 12 64GB"
            },
            {
                "link": "https://market.yandex.ru/product--smartfon-apple-iphone-se-2020-64gb/661221015?nid=54726&show-uid=16206548825917275667016004&context=search&text=iphone&sku=101099789863",
                "amountfrom": "33 490",
                "name": "Смартфон Apple iPhone SE 2020 64GB"
            }
        ]
    }
]
Чтобы опции "Начальный текст" и "Конечный текст" были доступны в Редакторе заданий, нужно активировать "Больше опций".
Возможные настройки
| Параметр | Значение по умолчанию | Описание | 
|---|---|---|
| AntiGate preset | default | Выбор пресета  Util::AntiGate, детальнее о настройке тут | 
| AntiGate preset for old captcha | default | Аналогично AntiGate preset, но используется только для обычных (старых, в виде одной картинки) каптч. Если здесь не выбран пресет, то для таких каптч будет использоваться пресет, выбраный в AntiGate preset. | 
| Auto-Solve ClickCaptcha | ☐ | Автоматическое разгадывание click каптчи (без использования сервисов) | 
| Experimental img captcha max count | 1 | Максимальное количество повторных капч-картинок на попытку | 
| Pages count | 5 | Количество страниц для парсинга | 
| Search region ID | Not set | Регион для парсинга | 
