Ерем Шахбазян › Erem01 Сбер ID
Делаю сложные задачи простыми решениями
Рейтинг
9 619
№ 113 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
5 лет
На сайте с
2025 года
Юридический статус
Самозанятый

Парсер каталога интернет-магазина в Excel: 1000 товаров за минуту и отчёт, что изменилось с прошлого запуска — цены, наличие, новинки

Используемые навыки API Excel Python SQLite

Описание

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

Это демонстрационный проект: парсер собирает учебный магазин books.toscrape.com, сделанный специально для отработки парсинга (1000 товаров). Под реальный сайт меняется только модуль разбора страниц — загрузка, история, сравнение и выгрузка остаются как есть.

Решение

Написал парсер на Python с асинхронной загрузкой (asyncio, httpx).

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

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

Результат — Excel на три листа: все товары (фильтры, закреплённая шапка, формат денег, звёзды рейтинга, ссылки на товар, подсветка нулевого остатка), сводка по категориям (количество, средняя, минимальная и максимальная цена, остатки) и изменения с прошлого запуска с цветовой разметкой. По желанию — CSV, который Excel открывает с кириллицей без настроек. Код покрыт 24 автотестами, включая обход подменённого сайта с «падающей» карточкой — без обращения к сети.

Результат

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

Запускается одной командой, по расписанию — раз в день или чаще. Код открыт.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Веб-платформа для логистической компании с онлайн-отслеживанием грузов и автоматизацией внутренних процессов.
Веб-платформа для логистической компании с онлайн-отслеживанием грузов и автоматизацией внутренних процессов.
222
Дизайн и Брендинг Highload-система парсинга с очередями задач (Celery + Redis) и масштабируемой архитектурой
Highload-система парсинга с очередями задач (Celery + Redis) и масштабируемой архитектурой
185
Веб-разработка и IT Интернет-магазин в Telegram-боте: каталог, корзина, оформление с доставкой, оплата картой в Telegram и админка с заказами и выгрузкой в Excel
Интернет-магазин в Telegram-боте: каталог, корзина, оформление с доставкой, оплата картой в Telegram и админка с заказами и выгрузкой в Excel
5
Веб-разработка и IT Система онлайн-продажи и проверки электронных билетов для музея
Система онлайн-продажи и проверки электронных билетов для музея
186