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

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

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

 
Задача

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

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

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

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

Оставлять заявки могут только авторизованные пользователи.
Stanislav Ricci
Специализация: Программирование и IT
  • 7 000 руб3 дня
Для решения задачи чтения публикаций из 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 (телеграмм)
Михаил Дмитриев

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

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

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

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

Программист

Специализация: Программирование и IT
  • 2 000 руб1 день
Здравствуйте! Совсем недавно делал подобное. Обращайтесь! Готов выполнить работу.

ЕЩЕ РАЗ ВЫБИРИТЕ ИСПОЛНИТЕЛЕМ. А ЛУЧШЕ В ТЕЛЕГРАМ ЕЩЕ МНЕ НАПИШИТЕ.
import os
import time
import random
from telethon import TelegramClient, events

# Укажите свои данные API
api_id = 'YOUR_API_ID'
api_hash = 'YOUR_API_HASH'
phone_number = 'YOUR_PHONE_NUMBER'

# Список каналов для подписки
channels = [
'channel_username_1',
'channel_username_2',
# Добавьте остальные каналы...
]

# Создание папки для сохранения контента
os.makedirs('saved_posts', exist_ok=True)

client = TelegramClient('session_name', api_id, api_hash)

async def save_post(message):
# Сохранение текста сообщения
if message.message:
with open(f'saved_posts/{message.id}.txt', 'w', encoding='utf-8') as f:
f.write(message.message)

# Сохранение медиа (картинки и видео)
if message.media:
await client.download_media(message.media, f'saved_posts/{message.id}')

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

for channel in channels:
async for message in client.iter_messages(channel):
await save_post(message)
# Рандомная пауза до 2 часов (7200 секунд)
time.sleep(random.randint(60, 7200))

with client:
client.loop.run_until_complete(main())
Константин
Специализация: Программирование и IT
  • 3 000 руб3 дня
Здравствуйте, сделаю
 
Илья Канышев
Специализация: Программирование и IT
  • 5 000 руб5 дней
Готов выполнить заказ. Если необходима читаемость данных (чтобы можно было открыть и посмотреть), предлагаю добавить форматирование текста в Word-файле
Сроки реальные. Задача понятна и проста

Имею опыт работы с разными парсерами, ботами-перепоста из одного канала в другой. Гарантирую, что аккаунт не будет заблокирован от работы парсера
Дмитрий И Александр

Сайты, боты и парсеры для вашего бизнеса

Специализация: Программирование и IT
  • 3 000 руб2 дня
Добрый день!
Готов выполнить ваш проект.
Ранее писал большое количество раз такой скрипт. Парсить можно с одного аккаунта без проблем, просто нужно с небольшим паузами это делать.

Напишите в тг мне : @pro_ficient_python
Здравствуйте, Сергей, могу написать код.У меня уже есть заготовка, мне ее немного надо доделать, поэтому примерно через часа 2 могу скинуть.
http://project10882159.tilda.ws/ . здравствуйте такой сайт подаёт
Здравствуйте! Предлагаю свои услуги по выполнению вашего заказа.

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

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

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