from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetHistoryRequest
api_id = YOUR_API_ID
api_hash = 'YOUR_API_HASH'
channel_username = 'your_channel_username_or_id' # например: 'mychannel' или -1001234567890
client = TelegramClient('session_name', api_id, api_hash)
async def main():
await client.start()
entity = await client.get_entity(channel_username)
offset_id = 0
all_messages = []
while True:
history = await client(GetHistoryRequest(
peer=entity,
offset_id=offset_id,
offset_date=None,
add_offset=0,
limit=100,
max_id=0,
min_id=0,
hash=0
))
if not history.messages:
break
messages = history.messages
all_messages.extend(messages)
offset_id = messages[-1].id
# Сохраняем в файл
with open("telegram_posts.txt", "w", encoding="utf-8") as f:
for msg in all_messages:
if msg.message:
f.write(msg.message + "\n\n")
with client:
client.loop.run_until_complete(main())