Skip to content

About

🚀Автономный парсер цен/товаров крупного ритейла с 2 режимами: ручной запуск через Telegram‑бота в 3 шага для ad-hoc задач и Автопарсинг по расписанию с условиями в Google Таблице

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🚀Price Hunter

Автономный парсер цен и товаров крупного онлайн‑ритейла с 2 режимами:

  • ручной запуск через Telegram‑бота в 3 шага для ad‑hoc задач:

url → категория → бренд [быстрый фильтр по справочнику из гугл-таблицы] = результат и логи в Google Таблице + уведомление в ТГ

  • автопарсинг по расписанию и заданным условиям в Google Таблице:

все условия о времени и параметрах запуска задаются пользователем в Google Таблице → результат выполнения и логи в Google Таблице

Данные пишутся в структуру на лист Результаты для оперативного анализа, есть Справочник брендов для быстрого фильтра, лист Задачи для автопарсинга и лист Logs для полного логирования всех запусков. Парсер успешно обходит анти‑бот защиту за счёт Playwright + BeautifulSoup4 [дозагрузка динамической страницы + парсинг HTML] и антидетект-настройки с имитацией под «человеческий» поиск

Стек:

Python · Playwright · BeautifulSoup · Google Sheets API (Service Account) · Telegram Bot API · GitHub Actions · Google Colab · vibe-coding

Краткая структура:

  • bot.py - деплой из GitHub на Railway с токеном Telegram‑бота и запуском парсинга по команде пользователя
  • main.py - авто‑парсер, запускаемый через GitHub Actions по задачам из листа Задачи в Google Таблице
  • parser - Playwright + BS4 и антидетект‑настройки: реальные User‑Agent'ы, подмена navigator.webdriver, рандомный viewport, заголовки, задержки и «человеческий» скролл
  • Google Таблица:
    • Результаты
    • Задачи
    • Справочник брендов
    • Logs

Что умеет

  • Парсит десятки карточек за один запуск с учётом брендов, категорий и единиц измерения в двух режимах: ручной и по расписанию
  • Обрабатывает динамическую подгрузку товаров и сохраняет только релевантные позиции
  • Логирует каждый запуск (ручной и авто) с указанием условий, статуса, текста ошибки и числа найденных товаров и уникальных брендов
  • В боте можно добавить тестовую строку для проверки подключения, перемещаться между шагами, задовать кнопками фильтр брендов и переходить в Google Таблицу

Структура Google Таблицы

  • Результаты - основное хранилище выгрузок:

    • Поля: URL категории · Категория · Бренд · URL карточки товара · Название · Текущая цена · Старая цена · Время парсинга · Условия парсинга по брендам

    Используется для анализа цен, фильтрации по брендам/категориям и истории изменений

    Старая цена - содержит значение если в карточке товара указана цена до акции Условия парсинга по брендам - список фильтра по брендам при запуске парсера (пусто если парсились все бренды)

  • Задачи - расписание и условия для авто‑парсинга:

    • Поля: ID · Статус активности · Частота выполнения · Дата запуска · Время запуска · URL категории · Наименование категории · Бренды · Примечание · Время последнего запуска · Статус последнего запуска

    Авто‑парсер считывает отсюда только актуальные задачи и запускает нужные сценарии

    • Частота выполнения составная из множественного выпадающего списка: Ежедневно · Разово · [Дни недели]
    • Бренды либо пустое значение (без фильтров), либо заполяется из множественного выпадающего списка брендов из листа Справочник брендов
    • Дата запуска устанавливается если для разовой задачи
  • Справочник брендов - источник брендов, заполняется в ручную

    • Поля: Наименование компании · Бренд · Описание бренда · Примечание

    источник для быстрого заполнения листа Задачи источник для бота (для inline‑клавиатуры на 3 шаге (фильтрация брендов): Все бренды(из справочника) · Без фильтров(без ограничений) · [Выбор брендов по кнопкам])

  • Logs - технические логи всех запусков:

    • Поля: Время парсинга · ID задачи · Источник задачи [АВТО / РУЧНОЙ] · URL категории · Категория · Бренды · Кол-во товаров · Статус [УСПЕХ / ОШИБКА] · Сообщение об ошибке

    Нужен для отладки, контроля ошибок и прозрачности работы парсера

    Бренды - все уникальные названия брендов в выгрузке

Скриншоты

Листы Google Таблицы

Лист Результаты: структурированная выгрузка товаров с ценами, брендами и временем парсинга. Результаты парсинга

Лист Задачи: расписание и условия для автопарсинга (частота, даты, бренды, статус). Лист задач

Лист Справочник брендов: единый источник брендов для бота и автозадач. Справочник брендов

Лист Logs: журналы всех запусков с источником, статусом и сообщением об ошибке. Лист логирования запусков

Шаги в Telegram‑боте

Шаг 1/3 - ввод URL категории Telegram бот - шаг 1

Шаг 2/3 - ввод названия категории Telegram бот - шаг 2

Шаг 3/3 - выбор брендов (все / без фильтра / выборочно) Telegram бот - шаг 3

Результат - уведомление о завершении и ссылка на Google Таблицу Telegram бот - результат

About

🚀Автономный парсер цен/товаров крупного ритейла с 2 режимами: ручной запуск через Telegram‑бота в 3 шага для ad-hoc задач и Автопарсинг по расписанию с условиями в Google Таблице

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors