Сергей Бебешко
200 карточек товаров с Wildberries и Ozon: собрали за вечер, включая снятые с продажи
Сергей Бебешко
#Разработка программного обеспечения

200 карточек товаров с Wildberries и Ozon: собрали за вечер, включая снятые с продажи

37 
Сергей Бебешко Россия, Шатура
Поделиться: 0 0 0
200 карточек товаров с Wildberries и Ozon: собрали за вечер, включая снятые с продажи
Сфера

Электронная коммерция

Сдано

Июль 2026

Задача

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

Заказчик прислал не ссылки, а списки артикулов: сто по Wildberries и сто по Ozon. Отдельная сложность в том, что часть артикулов уже снята с продажи, и по ним карточки нет вовсе — а строка в выгрузке нужна.

Решение

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

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

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

Результат

200 строк на 200 присланных артикулов — ни одна не потерялась.

Замеры, по которым считается цена и срок: Wildberries — 0,97 секунды и 7,5 МБ на тысячу товаров; Ozon — 9 секунд и 673 МБ на тысячу.

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

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

Сергей Бебешко
Сергей Бебешко

Россия Шатура

Главный урок этой работы: заказчику важна не полнота сбора, а совпадение выгрузки с его файлом. Строки должен задавать его список, а недостающее — помечаться статусом, а не молча исчезать.


Стек технологий

  • Python Python Язык программирования
  • SQLite SQLite База данных

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Оставить заявку