Как научиться писать ботов на python
Перейти к содержимому

Как научиться писать ботов на python

  • автор:

Предисловие

Здравствуйте! «Учебник», на страницах которого вы оказались, предназначен для тех, кто хочет научиться писать ботов для Telegram с использованием библиотек pyTelegramBotAPI (Уроки 1-12) и aiogram (урок 13 и новее). Автор не ставил собой целью сделать всеобъемлющую документацию, а лишь познакомить читателя с прекрасным миром ботов.

Предполагается, что читатель уже знаком с языком Python и способен самостоятельно настроить virtual environment (venv), а также перевести текст возникающих ошибок и хотя бы их загуглить.
Если же вы начали изучать язык только вчера/на прошлой неделе/в прошлом месяце, то, наверное, этот учебник пока ещё не для вас.

Новичкам рекомендуется – после ознакомления с языком Python, разумеется, – читать уроки по порядку, более продвинутые разработчики вольны использовать «учебник» в режиме справочника.

Все исходные коды к урокам расположены в этом репозитории, а обсудить материал можно в Telegram-чате.

Поблагодарить автора (материально) можно здесь. Перевод является добровольным и безвозмездным. Вам несложно, а мне приятно 🙂

ℹ️ также доступна вторая версия книги, посвящённая преимущественно фреймворку aiogram.

Как научится писать ботов на Python [закрыт]

Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 3 года назад .

хочу научится писать ботов на Python, там. для telegram, vk, возможно еще каких-то платформ (я не разбираюсь в этой сфере, поэтому, возможно, вопрос звучит очень неграмотно). Не могли бы подсказать какие-либо источники для изучения? Думал найти какую-нибудь книгу по описанию всего процесса, но не получилось. Попадались статьи на эти темы и ютуб выдавал несколько видеорликов, но, там как-то все поверхностно, хотелось бы не так. Просьба не шутить, а то я не пойму) За ранее, спасибо за ответ.

Создание бота в Telegram на Python

Course cover

Курс расскажет, как устроены боты в Telegram и научит вас основам их разработки на Python.

  1. В первом модуле вы узнаете что такое Telegram-боты и как они работают. Как их создавать. Как происходит взаимодействие пользователей и ботов.
  2. Во втором узнаете как работать с библиотекой для разработки ботов — python-telegram-bot. Напишите 4 простых бота и научитесь обрабатывать команды от пользователей, работе с текстовыми сообщениями, клавиатурами и фото.
  3. В третьем модуле получите советы по привлечению первых пользователей в ваши боты.

Для кого этот курс

Для тех, кто хочет разобраться, как работают боты в Telegram и в основах их разработки на Python.

Начальные требования

Знание основ программирования на Python.

Как учить Python с нуля с удовольствием: пишем своего чат-бота

Рассказываем, как быстро и просто написать бота для Telegram на Python, используя библиотеку python-telegram-bot.

Привет! Меня зовут Илья Осипов, я методист курса программирования на Python «Девман» и больше 5 лет пишу код на этом языке. Сегодня расскажу, как новичку сделать полезного чат-бота.

Python — классный язык программирования. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с нуля с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи». Вы уже тоже зеваете от скуки?

Нет, удовольствие от программирования совсем не в этом, а в том, чтобы решать реальные проблемы. Например, я втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было очень неудобно смотреть. Я решил потратить время и написать чат-бота, который будет присылать мне расписание занятий в более удобном виде. Оказалось, что другим студентам тоже было неудобно, и спустя год в чат-боте накопилось 4 тысячи пользователей.

Как раз на стыке между освоением синтаксиса и решением реальных проблем, как мне кажется, и сдаются большинство начинающих программистов. Совершенно не понятно как перейти от «сложить два числа» к написанию чего-то стоящего, чем можно похвастаться родителям, друзьям, жене и собаке.

Если вы тоже обнаружили себя в этой «яме», то этот туториал для вас. Дайте себе ещё один шанс.

Шаг 1. Зайдите в Repl.it

Создайте песочницу для языка Python. Ничего устанавливать не нужно. Просто откройте эту ссылку в соседней вкладке.

Придётся зарегистрироваться, но, думаю, вы разберётесь. ?

Как учить Python с нуля с удовольствием: пишем своего чат-бота 1

Шаг 2. Пройдите шаг 1

Эй, хватит читать! Так дела не делаются! Чтобы научиться программировать на Python — нужно писать код своими руками, а не смотреть, как кто-то делает это за вас ?

Вы же не думаете, что можно стать альпинистом, просматривая видео, как другие люди лезут в горы? А уж инструктором вас без реального опыта и подавно никто не наймёт. С программированием то же самое.

Шаг 3. Установите библиотеку для написания ботов

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

Вместо этого будем работать с куда более простой библиотекой — python-telegram-bot . Откройте меню для установки библиотек слева-снизу:
Нужна кнопка Packages.

И в появившемся окошке вбейте её название. Нажмите на «+» напротив названия и подождите загрузки. В конце появится вот такая зелёная плашка об успехе:
Название библиотеки можно скопировать прямо из статьи, не обязательно печатать. ?

Теперь сложноватый и неприятный момент, но такова разработка, за это нам и платят деньги. Нужно будет поменять версию библиотеки на более дружелюбную для новичков. Для этого нужно зайти в очень недружелюбный файл и подправить число на 13.15 . В общем-то больше ничего делать и не нужно, думаю, вы справитесь:
Очень страшно, ничего не понятно, но надо только поменять одно число.

Шаг 4. Запустите пример из документации

В документации к библиотеке есть готовые примеры кода. Давайте запустим пример эхобота.

Эхобот — это бот, который просто повторяет за вами. Отвечает вам тем же, что вы написали ему. Вот пример в документации. Я почистил его от всякого ненужного, поэтому можете взять сразу мой, он должен быть не таким страшным. Копируйте этот код в файл main.py и жмите кнопку > Run наверху. Ничего не получится, но так и нужно, об этом ниже:

from telegram import Update, ForceReply from telegram.ext import Updater, CommandHandler, MessageHandler, Filters def start(update, context): user = update.effective_user update.message.reply_text('Привет!') def echo(update, context): update.message.reply_text(update.message.text) if __name__ == '__main__': updater = Updater("TOKEN") dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo)) updater.start_polling() updater.idle() 

Шаг 5. Переживите шок от первой ошибки

Как учить Python с нуля с удовольствием: пишем своего чат-бота 2

В этом коде ошибка. Обычно новичкам от такого становится очень страшно, не хочется ни во что вникать, а поскорее закрыть консоль и больше никогда не возвращаться.

Поэтому обычно в курсах, книгах и видео ошибки от вас прячут: делают вид, что их не бывает. А вот в жизни всё совсем иначе, у программистов постоянно ошибка на ошибке, и бОльшую часть времени они тратят на то, чтобы разобраться, чего же этот Python от них хочет.

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

Как учить Python с нуля с удовольствием: пишем своего чат-бота 3

Ошибка говорит, что что-то не то с токеном от Telegram. Ну и правда, вы же никаких ботов в Telegram ещё не заводили. Для запуска кода вам понадобится токен бота. Получить его можно прямо в Telegram, у официального бота @BotFather. Только не забудьте просить его с уважением!

Как учить Python с нуля с удовольствием: пишем своего чат-бота 4

Не переживайте, что я показываю свой токен. После публикации статьи я его удалил. .

Осталось вставить полученный токен в код и запустить его снова:

Как учить Python с нуля с удовольствием: пишем своего чат-бота 5

Заходите в Telegram, открывайте переписку с вашим ботом, и получайте удовольствие от беседы с цифровым другом:

Как учить Python с нуля с удовольствием: пишем своего чат-бота 6

Шаг 6. Начните менять код

В скопированном коде много всего страшного. Давайте коротко расскажу, как это всё работает.

Начинается исполнение кода отсюда:

if __name__ == '__main__': updater = Updater("5646004689:AAECTkuGjWo1Imwr-_6UrN-nzbo89sd3WSM") dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo)) updater.start_polling() updater.idle() 

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

Единственное, что пригодится — это строчки, начинающиеся с dispatcher.add_handler . Это «интеллект» вашего бота. По ним он определяет, как ему реагировать на ваше сообщение. Вот как эти строчки расшифровываются:

Как учить Python с нуля с удовольствием: пишем своего чат-бота 7

А вот что внутри функции echo:

def echo(update, context): update.message.reply_text(update.message.text) 

Если просто перевести код на русский, становится понятнее:

Как учить Python с нуля с удовольствием: пишем своего чат-бота 8

Шаг 7. Веселитесь!

В документации python-telegram-bot есть масса примеров использования библиотеки. Там же можно подсмотреть как отправить фотку в Telegram или как создать отложенную задачу.

Остаётся только придумать, что будет делать ваш бот, разбить задачу на части и понемногу кодить его, добавляя и слегка переписывая примеры из документации.

Если вы будете достаточно упорны и потратите на это хотя бы пару месяцев, то станете настоящим крутаном. Останется дополнить свой стек другими технологиями, изучая их аналогичным образом, и всё получится.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *