October 6, 2023

Телеграм парсер/грабер новостей

Начнем с установки зависимостей:

pip install telethon #Или pip3 install telethon
pip install openpyxl # Или pip3 install openpyxl

Отлично! Тогда давайте начнем с написания кода для парсинга телеграм каналов с использованием Telethon. Вот пример кода:

# Импортируем необходимые модули
from telethon.sync import TelegramClient
from telethon.tl.types import ChannelMessagesFilter
from openpyxl import Workbook
# Устанавливаем параметры аутентификации
api_id = 'YOUR_API_ID'
api_hash = 'YOUR_API_HASH'
# Создаем функцию для парсинга канала
def parse_channel(channel_username):
    # Создаем Telegram клиента
    with TelegramClient('session_name', api_id, api_hash) as client:
        # Получаем объект канала по его username
        channel = client.get_entity(channel_username)
        # Определяем фильтр сообщений (например, последние 100)
        filter = ChannelMessagesFilter(channel, limit=100)
        # Получаем сообщения канала
        messages = client.get_messages(channel, filter)
        
        # Создаем новую книгу Excel
        wb = Workbook()
        sheet = wb.active
        
        # Записываем заголовки столбцов в Excel
        sheet['A1'] = 'Заголовок'
        sheet['B1'] = 'Дата'
        sheet['C1'] = 'Сообщение'
        
        row = 2
        # Перебираем полученные сообщения
        for message in messages:
            # Получаем заголовок из первой строки сообщения
            title = message.message.strip().split('\n')[0]
            # Получаем дату сообщения
            date = message.date.strftime('%Y-%m-%d %H:%M:%S')
            # Получаем текст сообщения
            text = message.message.strip()
            
            # Записываем данные в Excel
            sheet[f'A{row}'] = title
            sheet[f'B{row}'] = date
            sheet[f'C{row}'] = text
            
            row += 1
        
        # Сохраняем книгу в файл
        wb.save('parsed_messages.xlsx')
        
# Вызываем функцию парсинга канала
parse_channel('CHANNEL_USERNAME')


В коде выше, пожалуйста, замените 'YOUR_API_ID', 'YOUR_API_HASH' и 'CHANNEL_USERNAME' на соответствующие значения. Api_id и api_hash можно получить, создав приложение на сайте Telegram (https://my.telegram.org/).

Когда код будет выполнен, он создаст файл parsed_messages.xlsx, где будут сохранены заголовки, даты и тексты сообщений из канала.

Наш сайт nesershop.ru