Гайд [Telegram] Граббер постов из чужих каналов в свой

  • 80
  • 4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Привет зумеры, я пожилой бумер, написал здесь много букв, ваша психика это не осилит, поэтому просто закройте.

Подобная тема уже имеется на форуме
Но оформление и вообще объяснение происходящего, что да как, просто нет.
Моя же тема подойдет и для тех кто только начал вникать в кодинг.

В этой теме мы разберем:
  1. Установка библиотеки Telethon.
  2. Код скрипта.
  3. Получение / Регистрация API Telegram.
  4. Получение id каналов.
  5. Функция граббера.
  6. Запуск скрипта.
Здесь мы не будем создавать бота, а используем для этого обычный аккаунт telegram.
Желательно использовать купленный аккаунт, т.к не следуя советам приведенным в этой теме, ваш личный акк отлетит в бан


1. Установка библиотеки Telethon.
  • Нажать сочетание клавиш win+R
  • В появившемся окне прописываем: cmd жмем Enter
  • В следующем окне вводим pip install telethon
  • Дожидаемся завершения установки.
Создаем файл с любым удобным названием формата " .py " и редактируем любом текстовым редактором поддерживающем подсветку синтаксиса.

2. Код скрипта.
Копируем код ниже и редактируем следуя теме
from telethon import TelegramClient, events
import asyncio

api_id = 2281337
api_hash = '2d4zalupa737aa228e62a1f1337fd6a13'

my_channel_id = -1001345345836
channels = [-10012345353430, -100327473252340]

client = TelegramClient('myGrab', api_id, api_hash)
print("GRAB - Started")


@client.on(events.NewMessage(chats=channels))
async def my_event_handler(event):
if event.message:
await client.send_message(my_channel_id, event.message)

client.start()
client.run_until_disconnected()


Самое первое и важное в коде после импорта библиотек вы должны заметить api_id и api_hash, а так-же id каналов

В коде выше они вымышленны.
заменить на своё!

Важно! api_id и api_hash это данные вашего аккаунта, они не должны попасть к третьим лицам, иначе вы потеряете аккаунт.

3.Получение / Регистрация API Telegram.
Где взять api_id и api_hash?: на оф.сайте > Authorization

Процесс получения api_id и api_hash под спойлером ниже:
Посмотреть вложение 2054
На приложение придет код который вы должны ввести далее.

hEi28cV.jpg
cVCnIwJ.jpg
NzWMfaZ.jpg

Напомню еще раз:
api_id и api_hash это данные вашего аккаунта, они не должны попасть к третьим лицам, иначе вы потеряете аккаунт.

Полученные api_id и hash заменяем в коде на свои.
Важно: api_hash в коде обязательно должен быть за кавычками, 'одинарными' или "двойными" - разницы нет.

Далее ID каналов.
id своего канала и id канала откуда будем брать посты:
my_channel_id = -1001345345836 #id нашего канала
channels = [-10012345353430, -100327473252340] #id каналов, откуда будем брать материал.
Если ваш канал публичный т.е имеется ссылка в виде @MoykAnal228, Вместо ID просто вставляем его туда за кавычки

my_channel_id = '@MoykAnal228'
тоже самое и с переменной "channels" но давайте рассмотрим ее поближе

channels = [-10012345353430, -100327473252340]
как видите здесь указано id двух каналов, т.е. посты будут браться одновременно с двух каналов

Если вы просто ленитесь и у одного из каналов есть @ссылка можно сделать так:
channels = ['@tut_user', -100327473252340]
Туда-же можно вставлять неограниченное число id каналов через запятую.
если каналы активные, добавляйте не более 8 каналов, т.к из-за флуда в свой канал телеграм выдаст ограничение на отправку сообщений на 480 ± секунд, дальше больше и бан.

На время теста чтобы не создавать два канала для проверки скрипта
можете сделать так:
my_channel_id = 'me'
в этом случае с нужного канала сообщения будут отправляться к вам в сохраненки.

4. Получение id каналов.
Открываем диалог с ботом в телеграм: @getIDs_bot
пересылаем любой пост с нужного канала боту, после чего он выдаст:
LvQHjXr.jpg


И следующее то, что нас больше всего интересует, что мы нашим кодом будем пересылать, и как пересылать.

5. Функция граббера.
За это отвечает часть кода:
if event.message:
await client.send_message(my_channel_id, event.message)
В этом случае копируется любой пост (фото, видео, аудио, текст) целиком, вместе с описанием и отправляется в ваш канал.
Не пересылается а именно отправляется в канал как полноценный новый пост.
Спойлер: Пример работы

Посмотреть вложение 2055
Но что если нам нужно только фото, и мы хотим своё описание к фото?
заменяем эту часть кода на следующий:
if event.message.photo:
await client.send_file(my_channel_id, file=event.message, caption="тут ваш текст")
Посмотреть вложение 2056
Здесь всё просто рассмотрим аргумент event.message

event.message #-берет все посты
event.message.media #-только медиа контент исключая текст
event.message.photo #-только фото
event.message.video #-только видео
event.message.audio #-только музыка

заменяем на нужный нам вариант
Если вам нужен только текст, для отправки самого 'сообщения 'используйте
await client.send_message(my_channel_id, event.message)
Если медиа контент:
await client.send_file(my_channel_id, file=event.message, caption="свой текст")
Если же вам нужно и то и другое просто вставьте еще одну проверку ниже
if event.message.text:
await client.send_message(my_channel_id, event.message)
if event.message.video:
await client.send_file(my_channel_id, file=event.message)



Можно сказать на этом всё!
Сохраняем скрипт и запускаем, наслаждаемся.

6.Запуск скрипта.
Важно!

Если вы впервые регаете api телеграма, запустите скрипт
у вас спросит номер телефона от аккаунта, введите его и затем код отправленный вам в приложение, эта процедура делается всего один раз.

Здесь же создается еще один файл в данном случае myGrab.session
название файла берется из
client = TelegramClient('myGrab', api_id, api_hash)
этот файл всегда должен находится в одной директории со скриптом

и как только появится "GRAB - Started" - Закройте скрипт и запустите его только через пару часов.
иначе ваш аккаунт может отлететь в бан.
После этого запускайте и держите скрипт рабочим хоть 24/7

На этом всё, код самый элементарный, его можно сделать еще более функциональным.. но здесь этого не будет.
pepeHacker.gif
 
Сверху Снизу