Сбор номенклатуры и цен товаров с маркетплейсов

Задача

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

Что сделал

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

Моя роль

Спроектировал и написал сбор, модуль сопоставления с номенклатурой заказчика и формат результата.

Результат

  • Инструмент сбора номенклатуры и цен с торговой площадки.
  • Структурированный набор товаров с характеристиками и ценами, соотнесённый с базой заказчика.

Что можно проверить

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

Задача

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

Нужно было собирать с площадки и сам перечень товаров, и характеристики, и цены — регулярно, в структурированном виде и обязательно соотнесённые с номенклатурой заказчика, чтобы с результатом можно было работать, а не разбирать его заново.

Что собираю и в каком виде

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

Отдельный слой — сопоставление с номенклатурой заказчика. Один и тот же товар на витрине и в учётной системе называется по-разному: «Перфоратор Б-600, кейс, 600 Вт» в одном месте и «Б-600 кейс 0,6 кВт» в другом. Поэтому связка строится в три приёма: сначала точный ключ вроде артикула, затем смысловой поиск по названию и характеристикам, и только спорные случаи дорабатывает языковая модель. Так совпадения находятся там, где простое сравнение строк не работает.

Почему это устойчиво

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

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

Рамки

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

Кому это нужно

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

Что это значит на практике

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

Связанные услуги

Сбор и парсинг данных из реестров и сайтов

  • Python
  • автоматизация интерфейсов
  • семантическое сопоставление
  • языковые модели