Автономный парсер цен и товаров крупного онлайн‑ритейла с 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 Таблицу
-
Результаты- основное хранилище выгрузок:- Поля:
URL категории·Категория·Бренд·URL карточки товара·Название·Текущая цена·Старая цена·Время парсинга·Условия парсинга по брендам
Используется для анализа цен, фильтрации по брендам/категориям и истории изменений
Старая цена- содержит значение если в карточке товара указана цена до акцииУсловия парсинга по брендам- список фильтра по брендам при запуске парсера (пусто если парсились все бренды) - Поля:
-
Задачи- расписание и условия для авто‑парсинга:- Поля:
ID·Статус активности·Частота выполнения·Дата запуска·Время запуска·URL категории·Наименование категории·Бренды·Примечание·Время последнего запуска·Статус последнего запуска
Авто‑парсер считывает отсюда только актуальные задачи и запускает нужные сценарии
Частота выполнениясоставная из множественного выпадающего списка:Ежедневно·Разово·[Дни недели]Брендылибо пустое значение (без фильтров), либо заполяется из множественного выпадающего списка брендов из листаСправочник брендовДата запускаустанавливается если для разовой задачи
- Поля:
-
Справочник брендов- источник брендов, заполняется в ручную- Поля:
Наименование компании·Бренд·Описание бренда·Примечание
источник для быстрого заполнения листа
Задачиисточник длябота(для inline‑клавиатуры на 3 шаге (фильтрация брендов):Все бренды(из справочника) ·Без фильтров(без ограничений) ·[Выбор брендов по кнопкам]) - Поля:
-
Logs- технические логи всех запусков:- Поля:
Время парсинга·ID задачи·Источник задачи [АВТО / РУЧНОЙ]·URL категории·Категория·Бренды·Кол-во товаров·Статус [УСПЕХ / ОШИБКА]·Сообщение об ошибке
Нужен для отладки, контроля ошибок и прозрачности работы парсера
Бренды- все уникальные названия брендов в выгрузке - Поля:
Лист Результаты: структурированная выгрузка товаров с ценами, брендами и временем парсинга.

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

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

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

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

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

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

