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

Мониторинг цен конкурентов на маркетплейсе автозапчастей

Парсер для мониторинга цен конкурентов у производителя автозапчастей: закрытый SOAP-сервис маркетплейса, обход суточного лимита и готовая таблица сравнения с конкурентами.
Мониторинг цен на маркетплейсе автозапчастей — интерфейс и возможности

Производитель рулевых реек хотел понимать, как его позиции выглядят на маркетплейсе автозапчастей рядом с конкурентами. Вопрос простой: по каждому артикулу — почём его продают разные продавцы и что рядом предлагают другие бренды. Ответа на него площадка не даёт: выгрузки нет, а руками это значит открыть артикул, сравнить предложения нескольких продавцов, записать в таблицу и повторить несколько сотен раз. К концу списка начало уже устаревало.

Прайс-сервис у площадки есть, но он закрытый: работает по SOAP, только для авторизованных и с суточным лимитом запросов. Превысишь — аккаунт блокируют до конца суток.

Я написал парсер, который собирает эти цены сам и складывает их в таблицу сравнения. Набор брендов и продавцов задаётся в настройках, поэтому под новую задачу правится конфиг, а не код.

Как устроен мониторинг цен конкурентов

  • клиент сам авторизуется в сервисе, держит сессию и переподключается, когда её сбрасывают;
  • по каждому артикулу опрашиваются два режима выдачи — собственные предложения и аналоги: без второго не видно конкурентов, без первого теряются позиции самого производителя, потому что в кросс-выдачу они не попадают;
  • одно и то же предложение приходит в двух режимах под разными идентификаторами, поэтому дубли отсеиваются по смыслу позиции, а не по коду;
  • суточный лимит заложен в сценарий: прогон останавливается, не доходя до блокировки, и продолжается на следующие сутки с того же места;
  • шесть параллельных потоков, ответы пишутся построчно сразу, повторный запуск добирает только недостающее и ничего не задваивает;
  • фильтр по словам отсекает лишнее: в отчёт идут только нужные позиции, а не весь каталог продавца.

Мусор в данных лечится отдельно

Часть продавцов отдаёт названия, где кириллица подменена типографскими знаками: вместо «Рулевая рейка без ГУР новая» приходит нечитаемая каша. Готового декодера под такую подмену нет, поэтому я сличил испорченные и чистые названия одних и тех же артикулов, вывел таблицу соответствий символов и восстановил тексты. Без этого фильтр по словам просто не находил нужные позиции, и они молча выпадали из отчёта.

Что на выходе

  • книга Excel, где строка — артикул, а столбцы разложены парами «бренд и продавец» с ценой каждого;
  • рядом с ценами производителя — альтернативы других брендов по тому же запросу;
  • отдельный лист диагностики: что нашлось, что отфильтровалось и почему, чтобы пустая клетка не выглядела загадкой;
  • сырые ответы сервиса сохраняются отдельно, поэтому поправить логику отчёта можно без нового обхода площадки.

Результат

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