Всем привет!Это моя первая статья-туториал, так что не судите строгоСегодня я хочу расказать вам как сделать бота, который отправляет мемы с 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 [кликабельно]
Код слабый, общую структуру простить можно, автор явно всему учился сам. Но очень смущает, что непонятно откуда взялся chat, видимо это преобразованный channel_id.
Прошу прощения забыл поменять
квадратик