Skip to content

PachkaKofe04/market_watcher

Repository files navigation

Market Watcher — Аналитика цен. Пока под Яндекс Маркет.

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

Проект умеет:

  1. Парсить выдачу Яндекс Маркета (Playwright)
  2. Хранить все найденные карточки товара в SQLite
  3. Обновлять цены существующих объявлений
  4. Добавлять новые карточки
  5. Делать еженедельные "срезы" цен для аналитики
  6. Показывать статистику на веб-странице (FastAPI + Jinja2)
  7. Самостоятельно поддерживать БД в актуальном состоянии (актуализация, но без удаления старых данных)
  8. Работать автоматически через фоновый планировщик APSchedule

В настоящее время, версия сильно ограничена, текущий функционал:

  • Полный цикл скрейпа первой страницы Яндекс Маркета
  • Парсинг: название, цена, ссылка, external_id
  • Автоматическое обновление (last_seen_at) и цены при изменении
  • Ведение истории (карточки не удаляются)
  • Запуск планировщика: /Скрейп каждые 60 минут /Срезы раз в 7 дней Веб-интерфейс: /Список актуальных объявлений /Фильтрация по цене /Статистика (min/max/avg) /Недельная динамика цен

Возможное развитие (update v.2.0.):

  • Поддержка других источников (в виде модулей)
  • Поддержка парсинга всех страниц
  • Добавление различных категорий, а не узкого анализа 1 товара
  • Более глубокая аналитика: /динамика по моделям /распределение цен /графики Экспорт данных (CSV) Подключение к ТГ-боту для уведомлений о падении цен

Запуск:

  1. Клонировать репозиторий git clone https://github.com/username/market_watcher.git cd market_watcher
  2. Создаем окружение, устанавливаем зависимости. 2.1) Устанавливаем chromium - playwright install chromium
  3. Создаем .env добавляем/меняем значение для переменных: MARKET_SEARCH_URL=https://market.yandex.ru/...(товар который будете мониторить) SCRAPE_INTERVAL_MINUTES=60 SNAPSHOT_INTERVAL_DAYS=7 DATABASE_URL=sqlite:///./market.db
  4. Запускаем - python main.py Ждем когда сайт поднимется на http://127.0.0.1:8000
  5. python scraper_master.py Запускаем скрапер один раз на старте, далее работает автоматически согласно установленному интервалу.

P.S. в директории scripts тестовые (вспомогательные) инструменты проекта: clear_listings.py — очистка базы от объявлений. dump_html.py — сохранить HTML выдачи Маркета. dump_yandex_html.py — вариант дампа под тест. parse_yandex_dump.py — парсер сохранённого HTML. test_save_to_db.py — тест записи в БД. test_scraper.py — тест скрейпера. yandex_dump.html — тестовый дамп выдачи.

About

Инструмент аналитики цен, автоматически собирающий данные пока только с Яндекс Маркета. Обновляет карточки, хранит историю, строит статистику и недельные срезы. Идеален для мониторинга динамики цен и исследований рынка.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors