Раз в CHECK_INTERVAL_SECONDS парсит OLX по каждому запросу из SEARCH_QUERIES.
Новые (ещё не сохранённые) объявления сравнивает со средней ценой по всем
ранее сохранённым объявлениям того же запроса.
Если цена минимум на 15% ниже средней — добавляет в сообщение пометку
🔥 ВЫГОДНАЯ ЦЕНА!
Рассылает сообщение всем, кто написал боту /start.
pip install -r requirements.txt- Получи токен у @BotFather и вставь в
config.py→BOT_TOKEN. - Задай список запросов в
config.py→SEARCH_QUERIES(например"iphone 13","playstation 5"). - При желании поменяй
CHECK_INTERVAL_SECONDSиDISCOUNT_THRESHOLD_PERCENT.
python bot.pyКаждый пользователь пишет боту /start, чтобы подписаться на рассылку,
и /stop, чтобы отписаться.
Вёрстка OLX может меняться. Если парсер вдруг перестанет находить
объявления открой страницу поиска OLX в браузере, посмотри код карточки
объявления и поправь селекторы в parser.py (сейчас используются
data-cy="l-card" и data-testid="ad-price").
Не гоните интервал слишком агрессивно. Частые запросы с одного IP
могут привести к временной блокировке со стороны OLX. 5 минут разумный
минимум для старта.
Средняя цена считается только когда накопилось MIN_SAMPLES_FOR_AVERAGE
объявлений по конкретному запросу иначе оценка "выгодности" на первых
1-2 объявлениях была бы случайной.
База данных: простой файл olx_bot.db (SQLite), создаётся автоматически
при первом запуске.
Для постоянной работы бота (24/7) стоит запускать его на сервере/VPS
через systemd, screen/tmux или Docker, а не держать терминал открытым.