Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

This bot was written to parse prices from websites by URL and X-Path.

License

Notifications You must be signed in to change notification settings

eCoolGe/technesisbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

15 Commits

Repository files navigation

TechnesisBot

Данный бот был написан для парсинга цен с сайтов по ULR и X-Path

Техническое задание
Представьте, что у вас есть система без интерфейса пользователя, например краулер (сборщик информации), который парсит все сайты по продаже зюзюбликов и сохраняет в базу данных.
Появилась потребность дать обычному пользователю минимальными усилиями добавлять еще сайты для парсинга
Напишите простого бота, который будет иметь одну кнопку: загрузить файл
 1. При нажатии кнопки пользователь прикрепляет файл excel в формате таблицы с полями:
 a. title - название
 b. url - ссылка на сайт источник
 c. xpath - путь к элементу с ценой
 2. Бот получает файл, сохраняет
 3. Открывает файл библиотекой pandas
 4. Выводит содержимое в ответ пользователю
 5. Сохраняет содержимое в локальную БД sqlite
Реализация на python, решение должно быть представлено ссылкой на репозиторий и на бота (как основной вариант телеграм, но возможно вы предложите что-то еще).
Учесть возможность того, что сумма будет с пробелами, обозначением валюты и прочее.
Внутри репозитория должна быть инструкция по развёртыванию и корректный файл с необходимыми зависимостями (requirements, pipenv, poetry на ваш выбор)
Задание рассчитано на один день, выполнять можно в удобное время в течение недели
*Задача со звездочкой:
Провести парсинг по данным из таблицы и вывести среднюю цену зюзюблика по каждому сайту,
В качестве зюзюблика можете взять любой интересный вам товар
Список доступных команд
  • Пользователь:

    • /startначальная команда любого бота в Telegram, выводит приветственное сообщение
      • Загрузитькнопка для загрузки файла Excel
    • /helpкоманда, которая выводит список доступных команд
  • Администратор:

    • /logsотправляет в ответ текстовый документ с логами бота
    • /resetпересоздать базу данных

Установка

  • python, exit() (проверялось на версии 3.11)
  • cp .env.example .env
  • Вставить данные в созданный выше файл секретных данных .env
  • Вставить данные конфигурации в файл bot/config.py

Установка/запуск через pip:

  • pip install -r requirements.txt
  • python -m bot.main

Установка/запуск через Poetry:

  • pip install poetry — сначала надо установить Poetry через pip или аналогичный установщик, например, pipx
  • poetry install
  • poetry run start

Дополнительно

Дополнительные команды консоли
  • poetry export -f requirements.txt --output requirements.txt --without-hashes — сгенерировать новый список зависимостей для pip через poetry
  • poetry run python -m bot.main — аналогично команде-скрипту poetry run start
  • poetry add $(cat requirements.txt) — сгенерировать новый список зависимостей для poetry через pip
Пример файла .env
# Токен бота
BOT_TOKEN=<token>
# Режим отправки сообщений в канал-чат
# При включенном режиме бот будет "дублировать" важные сообщения (запуск, критическая ошибка) в канал-чат 
LOG_MODE=False
# Идентификатор канала-чата, используйте 0, если он вам не нужен
LOG_GROUP_ID=<group_id>
# Путь к файлу логов
LOG_FILE_PATH=bot/static/logs.txt
# Путь к базе данных SQLite
DB_PATH=bot/static/sqlite.db
# Включение тестового режима
# При включенном тестовом режиме бот будет отвечать заглушкой всем, кроме администраторов, указанных в файле config.py
TESTING_MODE=False

About

This bot was written to parse prices from websites by URL and X-Path.

Topics

Resources

License

Stars

Watchers

Forks

Languages

AltStyle によって変換されたページ (->オリジナル) /