Разработать шаблон Python-скрипта для чтения каналов (который не забанит tg-аккаунт)

Стоимость:1 500 рублей
Срок выполнения:3 дня
Варианты оплаты:По договоренности
Дата публикации:2024-09-16 10:55
Был(а) на сайте:2024-09-16 19:03

Разработать шаблон Python-скрипта для чтения каналов (который не забанит tg-аккаунт)

 
Задача

Необходимо разработать скрипт клиента telegram который будет сохранять все публикации из каналов по списку (около 50 штук). Публикации сохраняются в файлы папки со скриптом. Нужно сохранять текст, картинки и видео. Оперативность сохранения не важна: приемлем рандомный перерыв до 2 часов.

Не нужно ничего парсить, кроме контента.

Клиент будет запускаться в единственном экземпляре для одного аккаунта. Это личное использование, не промышленное с кучей подключенных аккаунтов.

Важно написать клиента так, чтобы телеграмм не банил аккаунт. Это самое главное в этой задаче, остальное я доработаю сам. Нужна экспертиза того, кто делал подобную задачу: знает как написать такого клиента, которого не заблокирует сам телеграмм.

Оставлять заявки могут только авторизованные пользователи.
Для подачи заявки на участие в задании Вам нужно авторизоваться
Для решения задачи чтения публикаций из Telegram-каналов, можно использовать библиотеку Telethon — это асинхронная библиотека для работы с Telegram API на Python. Она позволяет получать доступ к сообщениям в каналах, а также скачивать медиафайлы (фото, видео). Чтобы избежать бана аккаунта, важно не перегружать API частыми запросами и сделать интервалы между действиями, как вы упомянули, случайными, вплоть до 2 часов.

Вот шаблон Python-скрипта, который выполняет ваши требования, сохраняя текст, изображения и видео из списка каналов. Скрипт будет работать с перерывами, чтобы не превышать допустимые лимиты Telegram:

Установка зависимостей
Установите библиотеку Telethon через pip:
bash
pip install telethon

Вам понадобятся API ID и API Hash, которые можно получить, зарегистрировавшись как разработчик на Telegram API.

import os
import asyncio
import random
import time
from telethon import TelegramClient
from telethon.tl.types import MessageMediaPhoto, MessageMediaDocument

# Ваши API ID и Hash от Telegram
API_ID = 'your_api_id'
API_HASH = 'your_api_hash'
PHONE_NUMBER = 'your_phone_number' # Телефонный номер вашего аккаунта

# Папка для сохранения медиа и текста
SAVE_DIR = "telegram_channel_content"

# Список каналов для мониторинга
CHANNELS = ['channel_username_1', 'channel_username_2'] # Подставьте ваши каналы

# Функция для сохранения текста и медиа из сообщений
async def save_message_content(message):
if not os.path.exists(SAVE_DIR):
os.makedirs(SAVE_DIR)

# Сохраняем текст
if message.message:
file_path = os.path.join(SAVE_DIR, f"{message.date.strftime('%Y-%m-%d_%H-%M-%S')}_{message.id}.txt")
with open(file_path, 'w', encoding='utf-8') as f:
f.write(message.message)

Остальной код при выборе;)
Для этой задачи можно использовать библиотеку Telethon, которая позволяет взаимодействовать с Telegram API.

Установите библиотеку Telethon:
pip install telethon

Создайте файл telegram_scraper.py и добавьте следующий код:


from telethon import TelegramClient, events
import os

# Ваши API ID и API Hash, которые можно получить на https://my.telegram.org
api_id = 'YOUR_API_ID'
api_hash = 'YOUR_API_HASH'

# Список каналов для мониторинга
channels = ['channel1', 'channel2', 'channel3'] # Замените на ваши каналы

# Создание клиента
client = TelegramClient('session_name', api_id, api_hash)

# Функция для сохранения медиафайлов
async def save_media(message, folder):
if message.photo:
path = await message.download_media(file=folder)
print(f'Фото сохранено: {path}')
elif message.video:
path = await message.download_media(file=folder)
print(f'Видео сохранено: {path}')
elif message.document:
path = await message.download_media(file=folder)
print(f'Документ сохранен: {path}')

# Обработчик новых сообщений
@client.on(events.NewMessage(chats=channels))
async def handler(event):
folder = os.path.join(os.getcwd(), 'downloads')
os.makedirs(folder, exist_ok=True)

# Сохранение текста сообщения
if event.message.message:
with open(os.path.join(folder, f'{event.message.id}.txt'), 'w', encoding='utf-8') as f:
f.write(event.message.message)
print(f'Текст сообщения сохранен: {event.message.id}.txt')

# Сохранение медиафайлов
await save_media(event.message, folder)

# Запуск клиента
client.start()
client.run_until_disconnected()


Этот скрипт будет сохранять текстовые сообщения в файлы с расширением .txt, а медиафайлы (фото, видео, документы) в соответствующие файлы в папке downloads.

Не забудьте заменить YOUR_API_ID и YOUR_API_HASH на ваши реальные значения, которые можно получить на my.telegram.org.
13:18 16.09.24
Вот и все мои мысли, бана быть не должно ,так как мы используем встроенные инструменты Telegram API
Думаю полтарашку я заработал?
Здравствуйте, я начинающий разработчик на python, в принципе есть опыт работы с библиотекой telebot, могу попробовать выполнить, связь - @KaspiyT (телеграмм)
Михаил Дмитриев

Попробуешь сделать, и стакан окажется полон

Cпециализация: Программирование и IT
  • 2 000 руб2 дня
Я имею большой опыт разработки Python скриптов, включая Telethon. Я могу создать для вас скрипт для чтения каналов Telegram и сохранения их контента, включая текст, картинки и видео. Я знаю, как написать такого клиента, чтобы телеграмм не забанил ваш аккаунт. Контакты, опыт:
virgil rs

Фрилансерский уклад един!

Cпециализация: Программирование и IT
  • 5 000 руб3 дня
Привет,готов сделать
ТГ: @virgilius_hack

Оставлять заявки могут только авторизованные пользователи.

Другие открытые задания:

поиск заданий