Language: 🇷🇺 Русский | 🇺🇸 English
Автоматизированный бот для мониторинга новых проектов на FL.ru с отправкой уведомлений в Telegram.
- 🔍 Автоматический парсинг проектов с FL.ru по заданным категориям
- 📱 Уведомления в Telegram о новых проектах
- 🗄️ База данных SQLite для отслеживания уже обработанных проектов
- 🌐 Поддержка SOCKS5 прокси с аутентификацией
- ⚙️ Гибкая настройка фильтров и интервалов
- 🌐 Playwright для надежной работы с динамическим контентом
- 📊 Детальная статистика проектов (просмотры, отклики, цена)
- Python 3.8+
- Playwright - автоматизация браузера
- BeautifulSoup4 - парсинг HTML
- SQLite - локальная база данных
- Telegram Bot API - отправка уведомлений
- SOCKS5 Proxy - поддержка прокси
git clone https://github.com/jesusweb3/FL-Parser
cd fl-bot
python scripts/setup.py
Скрипт автоматически:
- ✅ Создаст виртуальное окружение
venv/
- ✅ Обновит pip до последней версии
- ✅ Установит все зависимости в изолированную среду
- ✅ Загрузит браузер Chromium для Playwright
- ✅ Создаст необходимые директории данных
Создайте файл .env
на основе scripts/.env.example
:
Заполните обязательные параметры:
# Telegram настройки
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHANNEL=your_channel_id_here
# Категории для поиска (в кавычках через запятую)
CATEGORIES="Программирование,Крипто и блокчейн"
# Интервал проверки в секундах (по умолчанию 180 = 3 минуты)
CHECK_INTERVAL=180
# Режим браузера (true = скрытый, false = видимый)
HEADLESS=true
# Таймаут браузера в миллисекундах
BROWSER_TIMEOUT=30000
# Количество попыток при неудаче
RETRY_ATTEMPTS=3
# Использовать прокси (true/false)
USE_PROXY=false
# SOCKS5 прокси в формате host:port:username:password
PROXY_STRING=
- SOCKS5 с аутентификацией
- Автоматическая проверка доступности
- Если прокси включен но недоступен, бот пропустит текущую итерацию и попробует снова через установленный интервал
Формат: host:port:username:password
USE_PROXY=true
PROXY_STRING=160.116.216.108:8000:username:password
Windows:
venv\Scripts\activate
python main.py
Linux/Mac:
source venv/bin/activate
python main.py
При первом запуске бот:
- Парсит все текущие проекты
- Добавляет их в базу данных
- НЕ отправляет уведомления (чтобы не спамить)
- Начинает мониторинг новых проектов
- Программирование
- Крипто и блокчейн
- Веб-программирование
- Мобильные приложения
- Дизайн
- Тексты
- SEO
- Маркетинг
- И другие...
FL-Parser/
├── src/fl_bot/ # Основной код приложения
│ ├── __init__.py # Инициализация пакета
│ ├── config.py # Конфигурация и валидация настроек
│ ├── core/ # Ядро приложения
│ │ ├── __init__.py # Инициализация модуля core
│ │ ├── browser.py # Автоматизация браузера с Playwright
│ │ └── parser.py # Парсинг HTML и извлечение данных
│ ├── database/ # Работа с базой данных
│ │ ├── __init__.py # Инициализация модуля database
│ │ └── orders_db.py # SQLite операции (создание, чтение, запись)
│ ├── telegram/ # Интеграция с Telegram
│ │ ├── __init__.py # Инициализация модуля telegram
│ │ └── sender.py # Отправка сообщений в Telegram
│ └── utils/ # Вспомогательные утилиты
│ ├── __init__.py # Инициализация модуля utils
│ └── logger.py # Настройка логирования
├── data/ # Директория данных (создается автоматически)
│ ├── database/ # База данных
│ │ └── orders.sqlite3 # SQLite файл с заказами
│ └── logs/ # Логи приложения
│ └── fl_bot.log # Основной лог файл
├── scripts/ # Скрипты установки и настройки
│ ├── .env.example # Пример файла конфигурации
│ └── setup.py # Автоматическая установка и настройка
├── .env # Файл конфигурации (создается пользователем)
├── .gitignore # Игнорируемые Git файлы
├── main.py # Точка входа приложения
├── requirements.txt # Python зависимости
└── README.md # Документация проекта
🔧 Основные модули:
main.py
- Главный файл запуска, координирует работу всех компонентовconfig.py
- Загрузка и валидация настроек из .env файла
🌐 Модуль browser.py:
- Запуск Chromium через Playwright
- Поддержка SOCKS5 прокси с аутентификацией
- Автоматизация выбора фильтров на FL.ru
- Получение HTML страницы с проектами
📊 Модуль parser.py:
- Парсинг HTML с BeautifulSoup4
- Извлечение данных проектов (название, цена, описание)
- Получение ID проектов и статистики
🗄️ Модуль orders_db.py:
- Создание и управление SQLite базой
- Проверка существования проектов
- Сохранение новых заказов
📱 Модуль sender.py:
- Форматирование сообщений для Telegram
- Отправка уведомлений через Bot API
- Обработка ошибок API
📋 Модуль logger.py:
- Настройка логирования в файл и консоль
- Ротация логов и форматирование
- Разные уровни логирования
Логи сохраняются в data/logs/fl_bot.log
и выводятся в консоль:
2025-07-15 14:14:30,686 - __main__ - INFO - Инициализация базы данных...
2025-07-15 14:14:30,693 - src.fl_bot.database.orders_db - INFO - База данных инициализирована
2025-07-15 14:14:30,693 - __main__ - INFO - Первый запуск: парсим заказы и добавляем в БД (без отправки в Telegram)
2025-07-15 14:14:54,899 - src.fl_bot.core.parser - INFO - Первый запуск: найдено 30 проектов, успешно обработано 30 и готово к добавлению в БД
2025-07-15 14:14:54,908 - src.fl_bot.database.orders_db - INFO - Заказ 5442001 добавлен в БД
2025-07-15 14:14:54,912 - src.fl_bot.database.orders_db - INFO - Заказ 5441999 добавлен в БД
...
2025-07-15 14:14:55,038 - __main__ - INFO - Первый запуск завершён: 30 заказов добавлено в БД из 30 найденных
2025-07-15 14:14:55,038 - __main__ - INFO - Начинаем отслеживать новые заказы каждые 3 минут
Каждое уведомление содержит:
- Заголовок проекта
- Цену или "Договорная"
- Описание (до 200 символов)
- Категорию из настроек
- Статистику (просмотры, отклики)
- Тип проекта
- Прямую ссылку на проект

- Токены и настройки хранятся в
.env
(добавлен в.gitignore
) - База данных только локальная
- Логи не содержат чувствительных данных
- Прокси данные не логируются
По всем вопросам обращайтесь: @jesusweb3
MIT License
Разработано c ❤️