Всем привет! В этой теме расскажу о написании простого граббера постов для нашей любимой телеги. Если будет 30+ реакций то напишу пост о более лучшем и продвинутом граббере с огромным функционалом))
Код, который я предоставлю, является примером использования библиотеки Telethon для работы с Telegram API. Давайте разберем каждую часть кода:
Код, который я предоставлю, является примером использования библиотеки Telethon для работы с Telegram API. Давайте разберем каждую часть кода:
- Импорт библиотек и модулей:
from telethon import TelegramClient, events
import asyncio
В этом блоке мы импортируем необходимые модули: TelegramClient для создания клиента Telegram, events для работы с событиями в Telegram, и asyncio для работы с асинхронными операциями.
- Конфигурация API:
api_id = 0004220
api_hash = '72b76077b2216344176639c800600000'
В этой части кода вы должны заменить значения api_id и api_hash своими реальными значениями, полученными при регистрации приложения на платформе Telegram.
- Настройки каналов:
my_channel_id = -1001391180000
channels = [-1600100000]
В данном примере у нас есть один исходный канал (channels), и мы хотим пересылать сообщения с этого канала на другой канал (my_channel_id). Вам нужно заменить значения my_channel_id и channels своими соответствующими значениями. Обратите внимание, что идентификаторы каналов должны быть в числовом формате, и для публичных каналов нужно использовать отрицательные значения.
- Создание клиента и запуск:
client = TelegramClient('myGrab', api_id, api_hash)
print("GRAB - Started | by connectUSB")
В этой части кода мы создаем экземпляр клиента TelegramClient с именем 'myGrab' и передаем ему значения api_id и api_hash. Затем выводится сообщение о запуске клиента.
- Обработка новых сообщений:
@client.on(events.NewMessage(chats=channels))
async def my_event_handler(event):
if event.message:
await client.send_message(my_channel_id, event.message)
Это декоратор, который регистрирует функцию my_event_handler в качестве обработчика событий новых сообщений из каналов, указанных в channels. Когда новое сообщение поступает в один из этих каналов, функция my_event_handler вызывается. Внутри функции проверяется наличие сообщения event.message и, если оно существует, оно отправляется в канал my_channel_id с помощью client.send_message.
- Запуск клиента и его работа:
client.start()
client.run_until_disconnected()
В этой части кода клиент запускается с помощью client.start() и остается активным, пока не будет отключен с помощью client.run_until_disconnected(). Это позволяет клиенту продолжать работать и обрабатывать события до тех пор, пока не произойдет отключение.
Скрытое содержимое доступно для зарегистрированных пользователей!
Последнее редактирование модератором: