Парсер телеграм чатов на основе Telethon, не извлекаются ссылки

Скрипт листает страницы, но не выводит ссылки на чаты в файл output.txt. Не понимаю как извлечь ссылки.Описание то что должен делать скрипт Он должен парсить ссылки на чаты с каждой страницы, записывая в файл output, и по истечению страниц переходить к следующему слову words.txt. Пример кода который у меня ниже


from telethon import TelegramClient, events
import asyncio

# Ваши учетные данные
api_id = '123'
api_hash = '123'
bot_username = 'en_SearchBot'

# Названия файлов
input_file = 'words.txt'
output_file = 'output.txt'

# Инициализация клиента
client = TelegramClient('session_name', api_id, api_hash)

async def process_keyword(bot, keyword, output):
    print(f'? Ищем по ключевому слову: {keyword}')
    await client.send_message(bot, keyword)
    await asyncio.sleep(5)  # Даем время для загрузки первой страницы

    page = 1
    while True:
        async for message in client.iter_messages(bot, limit=1):
            if message.text:
                print(f'? Обработка страницы {page}')

                # Обработка кнопок
                links_found = False
                if message.buttons:
                    for row in message.buttons:
                        for button in row:
                            if '?' in button.text and button.url:
                                print(f'? Найдена ссылка: {button.url}')
                                output.write(button.url + '\n')
                                links_found = True

                if not links_found:
                    print(f'❗ На странице {page} не найдено ссылок на чаты.')

                # Проверка на кнопку "➡️"
                next_button = None
                if message.buttons:
                    for row in message.buttons:
                        for button in row:
                            if '➡️' in button.text:
                                next_button = button
                                break

                if next_button:
                    print(f'➡️ Переход к следующей странице {page + 1}')
                    await next_button.click()
                    await asyncio.sleep(5)  # Даем время для загрузки следующей страницы
                    page += 1
                else:
                    print(f'✅ Все страницы для "{keyword}" обработаны.')
                    return

async def main():
    await client.start()

    bot = await client.get_entity(bot_username)

    # Считываем ключевые слова
    with open(input_file, 'r', encoding='utf-8') as f:
        keywords = [line.strip() for line in f.readlines()]

    # Открываем файл для записи результатов
    with open(output_file, 'w', encoding='utf-8') as output:
        for keyword in keywords:
            await process_keyword(bot, keyword, output)
            await asyncio.sleep(3)  # Задержка между ключевыми словами

    print(f'? Поиск завершен. Результаты сохранены в {output_file}')

# Запуск
with client:
    client.loop.run_until_complete(main())

Ответы (0 шт):