Для создания модуля парсинга комментариев в Telegram обычно используются такие технологии и инструменты:
1. **Telethon**: асинхронная библиотека Python для работы с Telegram API. Telethon позволяет получить доступ к всем функциям Telegram, используя ваш аккаунт.
2. **App API key и API hash**: для работы с Telegram API, вам необходимо зарегистрироваться в качестве разработчика на сайте Telegram и получить API ключ и хэш.
Прежде всего, столкнувшись с проблемой аккаунтов, вам нужно убедиться, что у вас есть действующие Telegram account, App API key и API hash. Если у вас возникают проблемы с блокировкой аккаунтов, попробуйте использовать аккаунты, которые уже имеют некоторую историю в Telegram и не выглядят мошенническими.
Следующий шаг — использование Telethon. Вот примерный код, который поможет вам начать сбор комментариев из открытых каналов:
Импортируйте необходимые библиотеки и настройте сессию:
```python
from telethon import TelegramClient, sync, events, utils
api_id = ваш_api_id
api_hash = 'ваш_api_hash'
client = TelegramClient('session_name', api_id, api_hash)
client.start()
```
Затем, используя Telethon, вы можете получать комментарии из постов:
```python
import asyncio
async def main():
# Загружаем список ссылок на посты
with open('post_links.txt', 'r') as file:
post_links = file.readlines()
# Открываем файл для сохранения результатов
with open('comments_data.csv', 'w', encoding='utf-8') as output_file:
# Для каждой ссылки на пост собираем комментарии
for link in post_links:
# Получение объекта channel и id сообщения из ссылки
channel = await client.get_entity(link.strip())
message_id = utils.resolve_id(utils.parse_id(link.strip()))
# Собираем комментарии
message = await client.get_messages(channel, ids=message_id)
async for reply in client.iter_replies(message):
username = reply.sender.username if reply.sender else 'deleted'
comment_text = reply.message.replace('\n', ' ').replace('\r', '')
comment_date = reply.date.strftime('%Y-%m-%d %H:%M:%S')
# Сохраняем найденные комментарии в файл
output_file.write(f'"{username}","{comment_text}","{comment_date}"\n')
# Запуск парсинга
asyncio.run(main())
```
Обратите внимание, что вам необходимо перевести каждую ссылку в формат, который использует Telethon для получения объекта channel и id сообщения. Также переменные `ваш_api_id` и `ваш_api_hash` нужно заменить на реальные значения, полученные при регистрации вашего приложения в Telegram.
Основная идея кода заключается в следующем:
- Читаем список ссылок на посты из файла.
- Открываем файл `comments_data.csv` для записи результата в формате CSV.
- Для каждой ссылки получаем доступ к каналу и сообщению.
- Используем `client.iter_replies(message)` для получения всех ответов на сообщение.
- Пишем данные комментариев в файл в формате CSV.
Обратите внимание, что парсинг данных из Telegram может нарушать условия использования сервиса, и неправомерное использование API может привести к блокировке аккаунта. Убедитесь, что вы в курсе возможных рисков и используете API в соответствии