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