Telegram‑боты стали популярным способом доставки быстрой и персонализированной информации. Одним из самых востребованных направлений является гороскоп – ежедневные, недельные и месячные предсказания для всех знаков зодиака. В этой статье мы разберём, почему гороскопы в мессенджере так популярны, какие готовые решения уже существуют, и покажем пошагово, как создать собственного бота‑гороскопа на Python.
Что такое гороскоп‑бот в Telegram?
Гороскоп‑бот – это автоматизированный аккаунт в Telegram, который реагирует на команды пользователя (например, /start или /horoscope) и отправляет текстовые предсказания, часто сопровождая их красивыми изображениями, кнопками выбора знака зодиака и даже интерактивными элементами (кнопки «Любовный», «Финансовый», «Здоровье»).
- Бот может работать в личных чатах и в группах.
- Поддерживает рассылку (push‑уведомления) с ежедневными предсказаниями.
- Позволяет интегрировать платные подписки и AI‑генерацию текста.
Популярные гороскоп‑боты в Telegram
Ниже перечислены несколько известных проектов, которые уже успешно работают в экосистеме Telegram.
- DHoroBot – открытый проект на GitHub (github.com/king-tri-ton/DHoroBot). Бот получает актуальные гороскопы с
horo.mail.ruи поддерживает команды/today,/week,/month. - TheBestZodiacBot – коммерческий сервис, предоставляющий персональные прогнозы, а также расклады Таро и нумерологию.
- Saturn.Love – «самый персонифицированный астро‑бот», использующий ИИ‑модели для генерации уникального текста под каждый запрос.
- HumorHoroscopeBot – шуточный бот, который поднимает настроение лёгкими предсказаниями и мемами.
- Поговорим со звёздами – бот‑ассистент, который каждый день отправляет карту Таро, персональный гороскоп и «магические числа».
Как создать собственного бота‑гороскопа
Создание бота не требует глубоких знаний астрологии – достаточно уметь работать с API Telegram и получать данные о гороскопах из открытых источников.
3.1 Регистрация бота в BotFather
- Откройте Telegram и найдите официального бота @BotFather.
- Отправьте команду
/newbotи следуйте инструкциям: задайте имя и уникальное username (должно оканчиваться наbot). - После создания вы получите токен – длинную строку вида
123456789:ABCdefGhIJKlmnoPQRstuVWXyz. Сохраните его, он понадобится в коде.
3.2 Выбор языка и библиотеки
Самый популярный стек – Python + pyTelegramBotAPI (telebot). Установить библиотеку можно командой:
pip install pyTelegramBotAPI requests Если вы предпочитаете Node.js, то аналогом будет node-telegram-bot-api.
3.3 Получение данных о гороскопах
Есть два основных подхода:
- Парсинг открытых сайтов (например,
horo.mail.ruилиastrology.com). Нужно соблюдать robots.txt и правила использования контента. - Официальные API – некоторые сервисы (например, Aztro) предоставляют бесплатный JSON‑интерфейс с ежедневными предсказаниями.
Пример запроса к API Aztro:
import requests
def get_horoscope(sign: str, day: str = "today"):
url = "https://aztro.sameerkumar.website/"
params = {"sign": sign, "day": day}
response = requests.post(url, params=params)
return response.json
3.4 Структура кода бота
Ниже – минимальный рабочий скелет бота, который показывает гороскоп по нажатию кнопки.
import telebot
import random
import requests
TOKEN = "ВАШ_ТОКЕН_ЗДЕСЬ"
bot = telebot.TeleBot(TOKEN)
ZODIACS = [
"Овен", "Телец", "Близнецы", "Рак", "Лев", "Дева",
"Весы", "Скорпион", "Стрелец", "Козерог", "Водолей", "Рыбы"
]
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
buttons = [telebot.types.KeyboardButton(z) for z in ZODIACS]
markup.add(*buttons)
bot.send_message(
message.chat.id,
"Привет! Выбери свой знак зодиака, и я пришлю тебе ежедневный гороскоп.",
reply_markup=markup
)
@bot.message_handler(func=lambda m: m.text in ZODIACS)
def send_horoscope(message):
sign = message.text.lower
data = get_horoscope(sign) # функция из предыдущего блока
text = f"{message.text} – {data['date']}
"
text += f"🔮 {data['description']}
"
text += f"❤️ Любовь: {data['love']}
"
text += f"💰 Финансы: {data['finance']}
"
text += f"🧭 Совет: {data['compatibility']}"
if __name__ == '__main__':
bot.polling(none_stop=True, interval=0)
Ключевые моменты:
- Используем
ReplyKeyboardMarkup– простые кнопки, позволяющие выбрать знак. - Функция
get_horoscopeделает запрос к внешнему API и возвращает словарь.
3.5 Планирование ежедневных рассылок
Чтобы бот автоматически отправлял гороскоп каждому подписчику в 9:00 утра, можно использовать библиотеку schedule или встроенный APScheduler.
from apscheduler.schedulers.background import BackgroundScheduler
def broadcast_daily:
for user_id in get_all_subscribers:
# Предположим, что у каждого пользователя хранится его знак
sign = get_user_sign(user_id)
data = get_horoscope(sign)
text = f"🌞 Доброе утро! Гороскоп на сегодня для {sign.title}:
{data['description']}"
scheduler = BackgroundScheduler
scheduler.add_job(broadcast_daily, 'cron', hour=9, minute=0)
scheduler.start
3.6 Тестирование и деплой
- Тестировать бота удобно в режиме «polling» на локальном компьютере.
- Для постоянной работы используйте Docker или Heroku. Пример
Dockerfile:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "bot.py"]
После сборки запустите контейнер и убедитесь, что бот работает 24/7.
Продвинутые функции
4.1 Персонализация
Сохраняйте в базе (SQLite, PostgreSQL) не только знак, но и пол, дату рождения, интересы. На их основе можно генерировать более точные предсказания:
- «Любовный гороскоп» – учитывает ваш пол и статус отношений.
- «Финансовый совет» – подбирает рекомендации в зависимости от возраста.
4.2 ИИ‑генерация текста
Для уникального контента можно подключить OpenAI API (ChatGPT) или модели HuggingFace. Пример запроса к ChatGPT:
import openai
def ai_horoscope(sign):
prompt = f"Составь короткий ежедневный гороскоп для знака {sign} в стиле астролога."
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
max_tokens=80,
temperature=0.7,
)
return response.choices[0].message.content.strip
4.3 Платные подписки и монетизация
- Используйте Telegram Payments API для продажи премиум‑гороскопов (доступ к «глубокому» анализу, личным рекомендациям).
- Оформляйте платные каналы и рассылайте эксклюзивный контент только подписчикам.
- Рекламные партнерства: размещайте небольшие рекламные блоки в конце прогноза.
Лучшие практики и безопасность
- Не храните токен в открытом коде. Используйте переменные окружения (
os.getenv('TELEGRAM_TOKEN')). - Обрабатывайте исключения при запросах к внешним API – иначе бот может «упасть».
- Ограничьте количество запросов к API (rate‑limit) – многие бесплатные сервисы позволяют лишь 100 запросов в час.
- Соблюдайте GDPR и локальные законы о персональных данных: храните только необходимую информацию и предоставляйте возможность её удаления.
- Регулярно обновляйте зависимости, чтобы избежать уязвимостей.
Гороскоп‑бот в Telegram – это отличный способ соединить астрологию, автоматизацию и современные технологии. С помощью простого кода на Python, открытых API и небольших усилий по настройке вы получаете полностью функционирующий сервис, который может привлекать аудиторию, генерировать доход и даже стать площадкой для экспериментов с ИИ.
Если вы только начинаете, советуем:
- Создать базовый бот, который отвечает на кнопку «Выбрать знак».
- Подключить бесплатный API (Aztro) и убедиться, что ответы приходят корректно.
- Добавить планировщик и протестировать рассылку.
- Постепенно внедрять персонализацию и, при желании, ИИ‑генерацию.
Удачной разработки и пусть звёзды всегда светят в ваш Telegram‑чат!