Мониторинг цен маркетплейсов в дипломе: архитектура агрегатора скидок и метрики эффективности
28 марта 2026 года ZDNet выпустил подборку скидок на планшеты в рамках Amazon Big Spring Sale: снижение цен до $150 у Apple, Samsung и других брендов, акция идёт до 31 марта. Для будущего инженера это не новость про гаджеты, а почти готовое техническое задание. Цены на маркетплейсах меняются ежедневно и по расписанию акций — руками такое не отследить. Значит, нужен сервис, который собирает данные, нормализует их и превращает в метрику: «вот здесь сейчас дешевле на 12%».
Тренд последних двух лет — не «написать парсер», а построить устойчивый конвейер данных с наблюдаемостью, ограничениями по нагрузке и воспроизводимыми метриками. Именно этот сдвиг и делает тему защищаемой: на защите вы говорите не «я спарсил страницу», а «мой конвейер держит p95 = 400 мс при 50 тыс. карточек в сутки и имеет RTO = 15 минут».
Что в новости является техзаданием: сопоставление фактов и разделов ВКР
| Факт из статьи ZDNet | Техническая задача | Раздел ВКР |
|---|---|---|
| «Deals on tablets up to $150 off» у нескольких брендов | Сопоставление товаров разных каталогов (product matching) и нормализация атрибутов | Глава 1 — анализ предметной области |
| «Sales are live now through March 31» | Планировщик с окном акции, rate limiting, троттлинг запросов | Глава 2 — проектирование |
| «We found deals…» — редакционная подборка | Автоматическое ранжирование и генерация топ-N по правилам | Глава 2–3 |
| «Amazon's Big Spring Sale» | Интеграция с партнёрским API или фидом вместо «грязного» парсинга | Глава 2 — интеграции |
| Скидки действуют неделю, затем исчезают | Хранение истории цен и расчёт «реальной» скидки от медианы | Глава 3 — метрики |
Три темы ВКР, которые вырастают из этой статьи
Тема 1. Сервис мониторинга и сравнения цен на маркетплейсах
Актуальность. Кампании вроде Big Spring Sale длятся дни и недели, а цены внутри них меняются несколько раз в сутки. Классический «парсер на requests + CSV» устаревает сразу: нужен конвейер с историей, дедупликацией и оповещениями.
Цель: разработать сервис сбора, хранения и анализа цен на товарные категории маркетплейсов с заданными показателями полноты и задержки.
Задачи:
- Провести анализ источников данных и правовых ограничений (условия использования, партнёрские API, robots.txt).
- Спроектировать модель хранения истории цен и схему сопоставления товаров.
- Реализовать планировщик и идемпотентные воркеры сбора с ретраями.
- Провести нагрузочное тестирование и подтвердить целевые метрики.
Структура: Глава 1 — обзор методов сбора и существующих агрегаторов, постановка задачи. Глава 2 — архитектура (C4-диаграммы, схемы БД по ГОСТ 19.701-90, описание API). Глава 3 — тестирование, расчёт экономической эффективности и TCO.
Тема 2. Агрегатор характеристик с рекомендательным модулем подбора планшета
Актуальность. Подборки вроде «best tablet deals» формируются вручную редактором. Это дорого и не персонализировано: студенту с бюджетом $250 и дизайнеру с $1200 нужны разные рекомендации при одном и том же массиве скидок.
Цель: разработать рекомендательный модуль, подбирающий устройство по бюджету, сценарию использования и истории скидок.
Задачи: нормализация характеристик из разнородных карточек; построение скоринговой функции; сравнение с базовой экспертной выборкой; оценка качества ранжирования (precision@k, NDCG).
Структура: Глава 1 — методы рекомендательных систем и метрики качества ранжирования. Глава 2 — проектирование модуля скоринга и API. Глава 3 — эксперимент, A/B-сравнение с ручной подборкой, интерпретация результатов.
Тема 3. Аналитическая платформа для продавца: реакция на скидочные кампании конкурентов
Актуальность. Пока Amazon раздаёт скидки на планшеты, продавец аксессуаров теряет конверсию просто потому, что узнал об акции через неделю. Задача — сократить задержку реакции с дней до часов.
Цель: разработать платформу сбора и визуализации динамики цен конкурентов с модулем оповещений.
Задачи: ETL-конвейер, витрина данных для аналитики, дашборд, правила срабатывания алертов, оценка задержки уведомления.
Структура: Глава 1 — анализ рынка маркетплейс-аналитики. Глава 2 — архитектура потоковой обработки. Глава 3 — расчёт задержки, стоимость инфраструктуры, сценарии внедрения.
Аналитическая глава: как обосновать стек, а не просто его перечислить
Главная ошибка в первой главе — абзац «для реализации выбраны Python и PostgreSQL, потому что они популярны». Популярность не критерий. Стройте сравнение по критериям, привязанным к вашей задаче (в данном случае — к сбору быстро меняющихся цен на десятках тысяч карточек).
Методика: критерий → альтернативы → решение → источник
| Решение | Альтернатива | Критерий выбора | Чем подтвердить |
|---|---|---|---|
| Playwright | requests + BeautifulSoup | Наличие JS-рендеринга на страницах каталога | Замер доли страниц с динамической подгрузкой |
| PostgreSQL | ClickHouse | Соотношение транзакционной записи и аналитических выборок | Тест на 1 млн записей истории цен |
| Kafka | RabbitMQ | Нужна ли повторная обработка истории событий | Сценарий пересчёта витрины за прошлый период |
| Redis | Кэш в памяти приложения | Несколько инстансов воркеров и общий rate limit | Проверка на 3 подах Kubernetes |
Каждая строка таблицы — это уже готовый слайд для защиты. Сравнение из статьи ZDNet («до $150 off у нескольких брендов») отлично иллюстрирует необходимость нормализации: цены приходят из разных каталогов, в разных валютах, с разной периодичностью обновления. Значит, в главе 1 уместен подраздел про единую модель товара и справочник атрибутов.
Проектная часть: от схемы к рабочему коду
Уровни архитектуры и что изображать
- Контекст: внешние источники (партнёрский API, фиды, страницы каталога) и потребители (веб-интерфейс, алерты, дашборд).
- Контейнеры: сборщик, очередь, сервис нормализации, хранилище истории, API, фронтенд.
- Компоненты: планировщик, менеджер прокси, дедупликатор, скорер скидок.
Схемы алгоритмов оформляйте по ГОСТ 19.701-90, а требования к системе — по ГОСТ 34.602-89. Это две ссылки, которые на защите снимают половину вопросов нормоконтроля.
Ключевой листинг: условный запрос вместо полного парсинга
Одна из самых выигрышных деталей проекта — экономия трафика через условные HTTP-запросы. Покажите её в главе 2:
import httpx
async def fetch_if_changed(url: str, etag_store: dict, client: httpx.AsyncClient):
"""Возвращает HTML только если карточка изменилась (HTTP 304 = нет изменений)."""
headers = {}
if (etag := etag_store.get(url)):
headers["If-None-Match"] = etag
resp = await client.get(url, headers=headers, timeout=10.0)
if resp.status_code == 304:
return None # цена та же — писать в БД нечего
etag_store[url] = resp.headers.get("ETag")
return resp.text
Добавьте к этому идемпотентность по хэшу содержимого товара: повторная обработка одного события не должна создавать дубль в истории цен. Это ровно тот аргумент, который переводит работу из категории «учебный парсер» в категорию «инженерная система».
Устойчивость и ограничения
- Экспоненциальный backoff и ограничение параллелизма на домен.
- Разделение «окна акции» и обычного режима опроса: во время распродажи период сокращается, вне её — растягивается.
- Хранение сырых ответов (raw layer) для воспроизводимости расчётов в главе 3.
Тестирование и метрики: чем закрывать расчётную главу
Метрики — то место, где ВКР чаще всего «плывёт». Соберите их заранее, из самого сервиса, а не из головы.
| Метрика | Как измеряется | Инструмент | Ориентир |
|---|---|---|---|
| Задержка обработки карточки, p95 | Трассировка конвейера | OpenTelemetry + Jaeger | < 500 мс |
| Полнота сбора | Доля карточек категории, попавших в БД за сутки | SQL-запрос-сверка | ≥ 98% |
| Точность сопоставления товаров | Ручная разметка выборки 300 пар | precision / recall | ≥ 0,95 |
| Доступность сервиса | Доля успешных запросов API | Prometheus + Grafana | ≥ 99,5% (ISO/IEC 25010) |
| RTO / RPO | Учебный отказ пода с замером восстановления | Kubernetes + бэкапы | 15 мин / 5 мин |
Нагрузочное тестирование удобно проводить k6 или Locust, а результаты подавать в виде графика «время отклика от числа виртуальных пользователей». Именно здесь статья про Amazon Spring Sale работает как сценарий: моделируйте пиковую нагрузку в первые часы акции, когда трафик к каталогу вырастает в разы.
Чему вы научитесь на такой теме
- Проектировать конвейеры данных с чётким разделением сбора, нормализации и хранения.
- Обосновывать выбор стека через критерии задачи, а не через вкусовщину.
- Строить наблюдаемость: трассировка, метрики, алерты — и говорить о них на языке ISO/IEC 25010.
- Считать экономику: стоимость запросов, хранения и поддержки в сравнении с ручным трудом редактора.
- Оформлять техническую документацию по ГОСТ 34.602-89 и ГОСТ 19.701-90 без переделок перед нормоконтролем.
- Защищать решения: у каждой цифры в презентации есть источник и методика замера.
Типичные ошибки и как их обойти
- Подмена терминов SaaS / PaaS / IaaS без обоснования. На защите спросят, почему выбран именно этот уровень абстракции. Дайте таблицу «требование → модель обслуживания → почему». Если разворачиваете сами — объясните, чем не устроил managed-сервис.
- Отсутствие метрик эффективности. «Работает быстро» — не аргумент. До реализации зафиксируйте целевые значения (p95, полнота, RTO) и покажите замер до/после оптимизации.
- Игнорирование требований ГОСТ 34.602-89 при оформлении ТЗ. Разделы «Требования к системе», «Состав и содержание работ», «Порядок контроля и приёмки» должны присутствовать буквально. Иначе даже сильный проект теряет баллы на ровном месте.
- Юридическая слепота. Парсинг без упоминания условий использования и robots.txt — прямой путь к вопросу, на который нет ответа. Опишите, где применяете официальный API, а где — публичные данные с ограничением частоты.
Частые вопросы студентов
Насколько сложно реализовать такой сервис в одиночку за семестр?
Реалистичный минимум — сборщик на Playwright, PostgreSQL с историей цен и простой веб-интерфейс со сравнением. Это 6–8 недель при 8–10 часах в неделю. Kafka и Kubernetes добавляйте только как «расширенный сценарий», а не как обязательный каркас. Лучше три работающих компонента, чем пять диаграмм без реализации.
Обязательно ли писать код, или комиссия примет только проектную часть?
Зависит от кафедры, но тренд однозначный: наличие работоспособного прототипа резко повышает шансы на «отлично». Компромиссный вариант — минимальное ядро (сбор + хранение + один отчёт) плюс подробное проектирование остального. Тогда на защите вы демонстрируете живой сценарий, а не скриншоты.
Где брать тестовые данные, если реальный маркетплейс отдаёт данные неохотно?
Три источника: открытые датасеты товарных каталогов, генератор синтетических карточек с настраиваемым распределением скидок и собственный снимок публичных страниц, сохранённый один раз и переиспользуемый в тестах. Учтите: на защите нужно показать методику воспроизведения, поэтому фиксируйте параметры генерации и версию датасета.
Как правильно оформить UML и C4-диаграммы в приложении?
Основные схемы — в главе 2, громоздкие — в приложение. Каждой диаграмме дайте подпись с номером, ссылкой в тексте и списком обозначений. Для схем алгоритмов используйте нотацию по ГОСТ 19.701-90, для структуры — C4 или UML-компонентные диаграммы. Единый стиль важнее количества.
Чек-лист перед сдачей
- Задачи из введения дословно совпадают с выводами по главам и заключением.
- У каждого источника в списке литературы есть год, издание и корректная ссылка (включая новость ZDNet от 28.03.2026).
- Целевые метрики заданы до реализации и подтверждены замерами после.
- Есть минимум одна схема архитектуры, схема БД и схема алгоритма — оформлены по ГОСТ 19.701-90.
- ТЗ содержит разделы по ГОСТ 34.602-89, включая порядок контроля и приёмки.
- Модель качества описана терминами ISO/IEC 25010, а не «удобно и быстро».
- Приложение содержит листинги, конфигурации и параметры тестовых прогонов.
- Текст проверен на единообразие терминов: не смешивайте «парсер» и «краулер» произвольно.
Если сомневаетесь, как написать ВКР так, чтобы техническая часть не рассыпалась на защите, — начните с постановки метрик. Всё остальное подтянется.
Нужна поддержка на любом этапе? Наши специалисты разбирают темы по мониторингу цен, агрегаторам данных, микросервисам и аналитическим платформам: поможем спроектировать архитектуру, собрать метрики, оформить главы и подготовить речь на защиту. Первая консультация — бесплатно, 30 минут с профильным экспертом. Средний срок подготовки работы под заданные требования — около 120 часов работы. Оставить заявку можно в любое время.
Источник: Best Amazon Spring Sale tablet deals 2026 (опубликовано 2026-03-28)
```