Этот проект представляет собой Telegram-бота, который позволяет пользователям загружать Excel-файлы с данными о сайтах и сохранять данные в базу данных SQLite.
- Загрузка Excel-файлов:
- Пользователь загружает файл с колонками:
title,url,xpath. - Бот проверяет файл на корректность и сохраняет данные в базу данных.
- Пользователь загружает файл с колонками:
- Вывод содержимого файла:
- Бот открывает файл с помощью библиотеки
pandasи выводит его содержимое пользователю.
- Бот открывает файл с помощью библиотеки
- Сохранение данных:
- Данные из файла сохраняются в локальную базу данных SQLite.
- Парсинг цен:
- Бот использует XPath для извлечения цен с указанных сайтов.
- Учитывает возможность наличия пробелов, символов валют и других нечисловых символов.
- Средняя цена:
- Бот вычисляет среднюю цену зюзюблика по всем сайтам и выводит её пользователю.
- Python 3.12
- aiogram: Для работы с Telegram API.
- pandas: Для обработки Excel-файлов.
- aiosqlite: Для работы с базой данных SQLite.
- aiohttp: Для выполнения HTTP-запросов (опционально, для парсинга).
- lxml: Для парсинга HTML с использованием XPath.
-
Клонируйте репозиторий:
git clone https://github.com/HapppyEnd/excel_bot.git cd excel_bot -
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл .env в корне проекта и добавьте туда токен вашего бота:
BOT_TOKEN=ваш-токен
-
Запустите бота:
python main.py
-
Убедитесь, что у вас установлен
DockerиDocker Compose. -
Соберите и запустите контейнер:
docker-compose up --build
-
Запуск бота:
Отправьте команду
/startв Telegram. Бот отправит 2 кнопки:- Загрузить файл: Для загрузки Excel-файла.
- Средняя цена: Для вычисления средней цены зюзюблика.
-
Загрузка файла:
Нажмите кнопку
Загрузить файл. Отправьте Excel-файл с колонками:title,url,xpath. -
Проверка файла:
Бот проверит файл на корректность и выведет его содержимое.
-
Сохранение данных:
Если файл корректен, бот сохранит данные в базу данных.
-
Средняя цена:
Нажмите кнопку
Средняя цена. Бот вычислит среднюю цену зюзюблика по всем сайтам и выведет её пользователю.
| title | url | xpath |
|---|---|---|
| Example Site | https://example.com | //div[@class='price'] |
| Another Site | https://anotherexample.com | //span[@id='price'] |