• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Парсер файлов с чатов Telegram (Библиотека Telethon)

rand

CooL-Lamer
Эксперт
Регистрация
24.05.2023
Сообщения
581
Реакции
1 152
Депозит
0.07 Ł и др.
Всем привет! Иногда интересно устроить рыбалку по чатам и посмотреть что находится в файлах. Данный скрипт позволяет автоматизировать скачивание файлов из чата.

Устанавливаем библиотеку: pip install telethon

bot.py:
Python:
from telethon.sync import TelegramClient
from telethon.errors import SessionPasswordNeededError
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty


# Получаем параметры для подключения к API по адресу:
# api_hash from https://my.telegram.org, under API Development, данные в переменных ниже указаны левые для понимания что нужно вписывать.
api_id = 10460555
api_hash = '205e1be31a7e7a61c103bac1ddee5555'

client = TelegramClient('komandos_kolya', api_id, api_hash, device_model="AMD B550", system_version="Windows 10")
client.connect()
phone = input("Enter phone: ")
client.send_code_request(phone, force_sms=False)
value = input("Enter login code: ")
try:
    me = client.sign_in(phone, code=value)
#Если на акке выставленно 2Ф, будет запрос на авторизацию
except SessionPasswordNeededError:
    password = input("Enter password: ")
    me = client.sign_in(password=password)

# Работа со списком чатов, для последующего выбора
chats = []
last_date = None
chunk_size = 1000
groups = []
# Запрос на получение списка групп
result = client(GetDialogsRequest(
    offset_date=last_date,
    offset_id=0,
    offset_peer=InputPeerEmpty(),
    limit=chunk_size,
    hash=0
))
chats.extend(result.chats)

for chat in chats:
    try:
        if chat.megagroup:
            groups.append(chat)
    except:
        continue

print("Выберите номер группы из перечня:")
i = 0
for g in groups:
    print(f"{i} - {g.title}")
    i += 1

g_index = input("Введите нужную цифру: ")
target_group = groups[int(g_index)]

# Скачивание файлов
for message in client.get_messages(f'{target_group.title}', limit=1000): # Будет проверены последние 1000 сообщений в чате, если нужно выставляйте больше.
    print(message)
    message.download_media()
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх