Всем привет! В этой статье я хочу рассказать, как можно написать простой Telegram BotNet на Python с помощью библиотеки Telethon, которую потом можно улучшить до сносера аккаунтов.
Перейдем к созданию
Для начала нам, собственно, потребуется установить саму библиотеку Telethon. Это можно сделать с помощью команды
pip install telethon
Теперь открываем любой удобный IDE (PyCharm, VS Code и т. д.) и начинаем писать код!
Подключим в наш код нужные библиотеки
from telethon import TelegramClient, events, functions
from telethon.sync import TelegramClient
import asyncio
import logging
import json
Чтобы наш BotNet не был пустышкой, нам нужны сессии Telegram (их можно купить на тематических сайтах). Чтобы нам было удобнее добавлять новые сессии в будущем и не менять код, создадим файл sessions.json
, который будет выглядеть следующим образом:
{
"accounts": [
{
"session_file": "1",
"phone": "...",
"app_id": ...,
"app_hash": "..."
}
]
}
Подставляем туда свои данные.
"phone"
- номер телефона аккаунта;"app_id"
- ID аккаунта (можно получить на официальном сайте my.telegram.org);"app_hash"
- хеш аккаунта (получается там же, где и ID).
Дальше перейдём в main.py
и напишем туда следующий код:
from telethon import TelegramClient, events, functions
import asyncio
import logging
import json
# Загрузка конфигурации
with open('session.json', 'r') as f:
config = json.load(f)
accounts = config['accounts']
clients = []
# Настройка логирования
logging.basicConfig(filename='telegram.log', level=logging.INFO)
async def main():
for account in accounts:
# Правильное создание клиента:
# 1 параметр - session (может быть строкой или файлом)
# 2 параметр - api_id
# 3 параметр - api_hash
client = TelegramClient(account['session_file'], account['app_id'], account['app_hash'])
await client.start(phone=account['phone'])
clients.append(client)
if __name__ == '__main__':
asyncio.run(main())
Внутри main()
можно реализовать свои функции.
Примеры кастомных функций:
Отправка жалоб на аккаунт
Спам сообщениями с разных аккаунтов
Вход на канал/беседу
Объяснение кода
1. Импорт библиотек
import telebot # Не используется в коде (можно удалить)
from telethon import TelegramClient, events, functions
import asyncio
import logging
import json
from telethon.sync import TelegramClient # Избыточный импорт
Telethon — основная библиотека для работы с Telegram API
asyncio — для асинхронного выполнения кода
logging — для логирования работы бота
json — для работы с конфигурационным файлом
2. Загрузка конфигурации
with open('session.json', 'r') as f:
config = json.load(f)
accounts = config['accounts']
clients = []
Загружаются данные аккаунтов из файла
session.json
Формат файла должен содержать ключ
accounts
со списком аккаунтов:
3. Настройка логирования
logging.basicConfig(filename='telegram.log', level=logging.INFO)
Все события будут записываться в файл
telegram.log
4. Основная функция main()
async def main():
for account in accounts:
client = TelegramClient(account['session_file'], account['app_id'], account['app_hash'])
await client.start(phone=account['phone'])
clients.append(client)
Для каждого аккаунта создаётся клиент Telethon:
session_file
— имя файла для хранения сессииapp_id
иapp_hash
— данные из my.telegram.org
Происходит авторизация по номеру телефона
Клиент добавляется в список
clients
для дальнейшего использования
5. Запуск ботнета
if __name__ == '__main__':
asyncio.run(main())
Запускает асинхронную функцию
main()
Заключение
В этой статье мы создали основу для Telegram BotNet на Python. Вы научились подключать несколько аккаунтов через Telethon и сохранять сессии в JSON. Код можно расширить – добавляйте свои функции в main()
. Спасибо за чтение! 🚀 Пишите в комментариях, какие функции хотите увидеть в первую очередь.