Добавить в корзинуПозвонить
Найти в Дзене

Гороскоп-бот своими руками: готовый код + подробная инструкция

Привет всем любителям звезд и технологий! Сегодня мы будем создавать… Telegram-бота, который расскажет вам о вашем будущем! 🔮 Да, вы не ослышались! Мы сделаем бота, который будет показывать гороскопы прямо в Telegram. И самое крутое – вам не нужно быть гуру программирования! Я подготовила для вас все необходимое, и мы вместе разберем каждый шаг. 😉 Чтобы вам было проще, я уже подготовила весь код для нашего бота. Просто скачайте архив по ссылке: 👉[Ссылка на скачивание ZIP-архива]👈 📌Внутри вы найдете несколько файлов: Чтобы наш бот заработал, нам нужно установить несколько библиотек Python. Это делается очень просто: pip install -r requirements.txt Эта команда автоматически установит все необходимые библиотеки, перечисленные в файле requirements.txt. Теперь нам нужно настроить бота, указав свой токен и другие параметры. Всё готово к запуску! Поздравляю! Ваш гороскоп-бот готов к работе! 🎉 Откройте Telegram, найдите своего бота по юзернейму и отправьте ему команду /start. Теперь да
Оглавление

Привет всем любителям звезд и технологий! Сегодня мы будем создавать… Telegram-бота, который расскажет вам о вашем будущем! 🔮

Да, вы не ослышались! Мы сделаем бота, который будет показывать гороскопы прямо в Telegram. И самое крутое – вам не нужно быть гуру программирования! Я подготовила для вас все необходимое, и мы вместе разберем каждый шаг. 😉

Что нам понадобится?

  • Компьютер с установленным Python 3.6 или выше.
  • Немного терпения и желания учиться! 😊

Шаг 0: Забираем готовый код! 🎁

Чтобы вам было проще, я уже подготовила весь код для нашего бота. Просто скачайте архив по ссылке:

👉[Ссылка на скачивание ZIP-архива]👈

📌Внутри вы найдете несколько файлов:

  • bot.py – основной файл с кодом нашего бота.
  • config.py – файл с настройками (токен бота, ID админа и группы).
  • parser.py – файл с функциями для парсинга гороскопов с сайта.
  • db.py – файл с функциями для работы с базой данных.
  • remove_tags.py – файл с функциями для удаления HTML-тегов.
  • requirements.txt – файл со списком необходимых библиотек.
Готовый телеграм-бот "Гороскоп"
Готовый телеграм-бот "Гороскоп"

Шаг 1: Устанавливаем необходимые библиотеки 📚

Чтобы наш бот заработал, нам нужно установить несколько библиотек Python. Это делается очень просто:

  1. Откройте терминал в Visual Studio Code (или в любом другом редакторе) на вашем компьютере.
  2. Перейдите в папку, где находятся файлы бота.
  3. Введите команду:
pip install -r requirements.txt

Эта команда автоматически установит все необходимые библиотеки, перечисленные в файле requirements.txt.

Шаг 2: Настраиваем бота ⚙️

Теперь нам нужно настроить бота, указав свой токен и другие параметры.

  1. Откройте файл config.py в любом текстовом редакторе (например, Visual Studio Code, Sublime Text).
  2. Найдите строку TOKEN = 'your_token' и замените 'your_token' на токен, который вы получили от BotFather (как получить токен, я рассказывала в предыдущих статьях 😉).
  3. Найдите строку ADMIN = 000000 и замените 000000 на свой ID в Telegram (чтобы узнать свой ID, напишите боту @getmyid_bot). Это нужно для того, чтобы вы могли использовать команды администратора.
  4. Найдите строку GROUP = '-1000000000' и замените '-1000000000' на ID группы в Telegram, куда бот будет отправлять гороскопы (если хотите, чтобы бот работал в группе). ID группы можно узнать у бота @getmyid_bot, просто перешлите ему сообщение из своей группы. Важно! ID группы всегда начинается с минуса.

Шаг 3: Запускаем бота! ▶️

Всё готово к запуску!

  1. Откройте командную строку (или терминал) в той же папке, где находится файл bot.py.
  2. Введите команду: python bot.py и нажмите Enter.
  3. Бот запущен.

Поздравляю! Ваш гороскоп-бот готов к работе! 🎉

Откройте Telegram, найдите своего бота по юзернейму и отправьте ему команду /start.

Разбираем код: Что за что отвечает? 🕵️‍♀️

Теперь давайте разберемся, как устроен наш бот и что делает каждый файл.

  • bot.py – Основной файл бота:

Импортирует необходимые библиотеки (telebot, random, config, parser, db).
Создает экземпляр бота с использованием токена из файла config.py.

Определяет обработчики команд:

/start – приветствует пользователя и предлагает выбрать знак зодиака.
/all – (только для админа) отправляет гороскоп на сегодня для всех знаков в группу.
/stat – (только для админа) отправляет статистику использования бота (количество пользователей).
Обрабатывает текстовые сообщения: если сообщение соответствует знаку зодиака, предлагает выбрать период гороскопа.
Обрабатывает нажатия на кнопки встроенной клавиатуры и отправляет гороскоп.
Запускает бота в режим бесконечного опроса.

  • config.py – Настройки бота: Содержит токен бота (TOKEN), ID админа (ADMIN) и ID группы (GROUP).
  • parser.py – Парсинг гороскопов с сайта: Содержит функции для получения гороскопов с сайта horo.mail.ru для указанного знака зодиака и периода.
    Функция getHoroTodayAll() получает гороскоп на сегодня для всех знаков.
    Функция getHoro(char, date) получает гороскоп для указанного знака зодиака и периода.
  • db.py – Работа с базой данных: Содержит функции для регистрации пользователей в базе данных и подсчета их количества.
    Функция tgidregister(tid) регистрирует или обновляет ID пользователя Telegram в базе данных.
    Функция countusers() подсчитывает количество пользователей в базе данных.
  • remove_tags.py – Удаление HTML-тегов: Содержит функцию remove_tags(text), которая удаляет HTML-теги из текста, чтобы гороскоп выглядел красиво в Telegram.
  • requirements.txt – Список библиотек: Содержит список всех необходимых библиотек Python, которые нужно установить для работы бота.

Как это работает? 🕵️‍♀️

  1. Когда пользователь запускает бота командой /start, бот отправляет приветственное сообщение и предлагает выбрать свой знак зодиака.
  2. Когда пользователь выбирает знак зодиака, бот предлагает выбрать период гороскопа (вчера, сегодня, завтра, неделя, месяц, год).
  3. Когда пользователь выбирает период, бот отправляет запрос на сайт horo.mail.ru, получает гороскоп для выбранного знака и периода, удаляет HTML-теги и отправляет текст гороскопа пользователю.
  4. Администратор бота может использовать команды /all и /stat для отправки гороскопов в группу и получения статистики использования бота.

Что можно улучшить? 🚀

Этот бот - отличный старт, но его можно сделать еще круче! Вот несколько идей для развития:

  • Ежедневный гороскоп по расписанию: Добавьте функцию, чтобы бот автоматически отправлял гороскоп каждому пользователю каждый день в определенное время. Для этого можно использовать библиотеки schedule или APScheduler.
  • Больше источников гороскопов: Подключите другие сайты или API с гороскопами, чтобы предоставлять пользователям более разнообразную информацию. Будьте осторожны с авторскими правами!
  • Персонализированные советы: На основе знака зодиака и других данных (например, возраста, пола, интересов) предлагайте пользователям индивидуальные советы по саморазвитию, карьере, отношениям и здоровью. Здесь можно использовать AI для анализа данных и генерации персонализированных рекомендаций.
  • Интеграция с другими сервисами: Подключите бота к календарю Google или TODO-листу, чтобы пользователь мог планировать свой день на основе гороскопа. Например, если гороскоп говорит о благоприятном дне для новых начинаний, бот может предложить добавить новые задачи в TODO-лист.
  • AI-гороскопы: Самый продвинутый вариант – использовать нейросети для создания более точных и интересных гороскопов. Можно обучить модель на большом количестве астрологических данных, чтобы она могла предсказывать будущее с большей точностью. Но это требует серьезных знаний в области AI и машинного обучения.
  • Платная подписка на “премиум” гороскопы: Предлагайте пользователям платный доступ к более подробным и точным гороскопам, которые составляются с использованием AI или астрологов.

Заключение:

Этот бот - лишь отправная точка. Экспериментируйте, добавляйте новые функции, меняйте дизайн, интегрируйте другие сервисы! Превратите этого бота в личного помощника, развлекательный центр или даже в источник дохода. Главное – не бойтесь пробовать новое!

И помните, если возникнут вопросы или понадобится помощь, смело обращайтесь в комментариях👇