Бот который отправляет в ваш канал мемы

Всем привет!

Это моя первая статья-туториал, так что не судите строго

Сегодня я хочу расказать вам как сделать бота, который отправляет мемы с dtf.ru в ваш Telegram канал.

Что-ж начнем!

Первое что нам нужно сделать это установить сам Python(не удивительно)

  • Устанавливаете файл Python [кликабельно]
  • Открываете установочный файл и нажимаете на квадратик "Add Python 3.x to PATH"
  • Далее, просто нажмите на Install Now и ждем
Обязательно нажмите на квадратик "Add Python 3.x to PATH"

Что бы проверить правильность установки выполните следуйщие действия:

  • Нажимаете на кнопки Win+R и вводите команду CMD, далее просто нажимаете "ОК"
  • Далее, вводите слово "python" Если все заработало и вам вывелось такое сообщение:"Type "help", "copyright", "credits" or "license" for more information", То вы сделали все правильно, можете закрывать это окно. Если же вам ничего не вывелось, соболезную Вам придеться переустановить python

Сейчас нужно получить специальный токен он бота в Телеграме:

Для начала нужно зайти в специального бота в телеграме под названием BotFather [кликабельно]Нажимаем на кнопку "Запустить" и далее пишем команду /newbot

  • Первое что спросит BotFather это как будет называться ваш Бот. Называйте как угодно тут ограничений нет. В дальнейшем его можно будет сменить.
  • Уже посложнее. Нужно придумать вашему Боту уникальный никнейм. Обязательно нужно в конце никнейма написать "bot" либо "_bot"Допускаются буквы латинского алфавита, цифры и символ подчеркивания (например – «MySuper_wow_bot»). Общее количество символов не менее 5 и не более 32
  • Если все в порядке, то в ответ мы получим сообщение с токеном. Обязательно сохраните куда нибудь этот токен в дальнейшем он нам пригодиться

Далее нужно получить id вашего канала:

  • Зайдите в бота @getmyid_bot [кликабельно]
  • Отправьте любое сообщение из вашего канала боту
  • Бот отправит вам сообщение с id вашего канала. Вам нужно значение "Forwarded from chat". Оно начинается с "-"
  • Скопируйте его себе и сохраните где нибудь он вам еще пригодиться

Так же установите какую либо IDLE для разработки такие как VisualStudio Code или PyCharm, ну с этим думаю вы разберетесь. Если что я буду работать в PyCharm.

Теперь нам нужно установить нужные нам библиотеки:

Открываем PyCharm

Внизу есть кнопка "Terminal"

У вас должен открыться такое окошко. Там вы должны прописать такие команды:

pip install requests pip install PyTelegramBotApi pip install beautifulsoup4

Каждая с новой строчки

Теперь приступаем к написанию кода:

Создаем новый файл под названием main.py

И импортируем библиотеки

import time from bs4 import BeautifulSoup import requests import telebot import datetime

Далее обьявляем необходимые переменные:

bot = telebot.TeleBot("TOKEN") # сюда вставляете ваш токен бота channel_id = # id вашего канала url = "https://dtf.ru/kek/entries/new" header = { "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36" }

В переменную "bot" вставьте токен вашего бота, а в переменную "channel_id" вставьте ID вашего канала

Теперь пишем основную функцию бота:

while True: # Бесконечный цикл def meme(): # Обьявляем функцию r = requests.get(url, headers=header).text soup = BeautifulSoup(r, 'html.parser') bs = soup.find('div', class_='content-image') bs2 = bs.find('div', class_='andropov_image') list = open("list.txt", "w+") link = (bs2['data-image-src']) # Сам парсер мемов if link not in list: with open("list.txt", "w") as file: file.write(link) bot.send_photo(channel_id, link) # Отправляем сообщение print(f"[{datetime.datetime.now()}] Отправил") # лог в консоль else: print(f"[{datetime.datetime.now()}] Новых мемов пока нет") # лог в консоль meme() # вызываем функцию time.sleep(10) # перерыв между проверкой на новые мемы(время в секундах)

На этом писать код мы заканчиваем

Не забудьте добавить своего бота в качестве Админа в ваш

Сейчас нажимаем на кнопки Ctrl+Shift+F10

И у нас запускается наш скрипт

Поздравляю теперь у вас есть бот который автоматически постит мемы в ваш канал!

Спасибо за прочтение!

P.s: Если что дешевый магазин прокси вот: @shopKiberbot [кликабельно]

0
3 комментария
Andrew Karelskiy

Код слабый, общую структуру простить можно, автор явно всему учился сам. Но очень смущает, что непонятно откуда взялся chat, видимо это преобразованный channel_id.

Ответить
Развернуть ветку
Derkown
Автор

Прошу прощения забыл поменять

Ответить
Развернуть ветку
Василий Беляев
квадратик
Ответить
Развернуть ветку
0 комментариев
Раскрывать всегда