Парсер следит за ценами и наличием в интернет-магазине по расписанию и сообщает в Telegram, когда что-то изменилось: подешевело, подорожало, закончилось, снова в наличии, новинка, снято с продажи. Собственный демо-проект, в примере обходит учебный магазин books.toscrape.com.
Результат — таблица Excel (или Google Таблица, если подключить) с листами «Товары» и «История цен» и короткое уведомление в Telegram со ссылкой на товар.
На что обратить внимание:
— товар опознаётся по артикулу, а не по ссылке: магазин перенёс товар в другой раздел — в таблице это та же строка, а не дубль;
— история пишется только при изменении цены или остатка, лист не раздувается одинаковыми строками;
— первый запуск молчит, иначе весь каталог пришёл бы «новинками»;
— если страница не открылась из-за сбоя, товар не считается снятым с продажи — никаких ложных тревог;
— бережно к сайту: не больше 5 запросов одновременно, повтор с паузой при ошибках сервера;
— цены хранятся без округлений.
Обход по расписанию: раз в 30 минут, 6 часов или сутки. Под другой сайт меняется только модуль сбора, таблицы и уведомления остаются как есть.
Стек: Python, httpx, BeautifulSoup, SQLite, openpyxl, Google Sheets API, Telegram Bot API.
https://github.com/Salaneze/price-monitor-demo