Найти в Дзене
Заходи в Ай-Ти

🤖 Сделал телеграм бота для отслеживание цен. Теперь покупаю все по скидке и сильно дешевле

На выходных был в гостях у моего друга и заметил на его столе суперкрутой изогнутый сверхширокий 35-дюймовый монитор 💻 . С его разрешения я провел некоторое время, используя монитор, и он меня привлек. Я решил приобрести такой себе. После проверки сайта, где он продается, он был на 10000 дороже, чем цена, за которую его купил мой друг на тот момент, поэтому я планировал купить его, когда цена упадет. Мне лень время от времени заходить на сайт, чтобы проверьте цену, поэтому я решил использовать все, что есть в моем распоряжении, чтобы создать бота, который будет отправлять мне ежедневное уведомление о цене интересующего меня товара. Мне нужна платформа для жизни бота. Похоже, Telegram — очень «дружественная к ботам» платформа, а документация очень краткая и понятная, поэтому я выбрал ее. Затем мне нужно извлечь цену с веб-сайта и передать ее боту. Я знаю небольшой парсинг веб-страниц с помощью моего любимого языка программирования Python. Создайте Telegram-бота 🤖 Процесс создания бота
Оглавление

На выходных был в гостях у моего друга и заметил на его столе суперкрутой изогнутый сверхширокий 35-дюймовый монитор 💻 . С его разрешения я провел некоторое время, используя монитор, и он меня привлек. Я решил приобрести такой себе. После проверки сайта, где он продается, он был на 10000 дороже, чем цена, за которую его купил мой друг на тот момент, поэтому я планировал купить его, когда цена упадет. Мне лень время от времени заходить на сайт, чтобы проверьте цену, поэтому я решил использовать все, что есть в моем распоряжении, чтобы создать бота, который будет отправлять мне ежедневное уведомление о цене интересующего меня товара.

Мне нужна платформа для жизни бота. Похоже, Telegram — очень «дружественная к ботам» платформа, а документация очень краткая и понятная, поэтому я выбрал ее. Затем мне нужно извлечь цену с веб-сайта и передать ее боту. Я знаю небольшой парсинг веб-страниц с помощью моего любимого языка программирования Python.

Создайте Telegram-бота 🤖

Процесс создания бота в Telegram довольно прост: мы создаем бота, разговаривая с ботом по имени BotFather, как интересно выразился Telegram: один бот, который будет управлять ими всеми.

-2

Прежде всего, нам нужно найти всемогущего BotFather в приложении Telegram и начать с ним чат, отправив /start, BotFather ответит нам списком команд (начинается с /), которые мы можем выполнить. Теперь, отправив ему сообщение /newbot, он проведет нас через процесс создания нового бота, предоставив ему имя и @username (точно так же, как человек-пользователь Telegram). После этого BotFather поздравит нас с созданием нового бота и отправит нам токен, который будет использоваться вместе с Telegram Bot API для управления поведением нашего бота, мы должны держать этот токен в секрете ⚠️ потому что тот, кто владеет этим кодом, владеет ботом.

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

-3

Затем мы будем использовать токен, предоставленный BotFather, для доступа к /getUpdatesAPI Telegram и получения идентификатора нашего чата.

-4

Запишите токен и идентификатор чата , мы будем использовать его позже.

Примечание. Мы можем настроить нашего бота, установив его описание, информацию и изображение профиля, используя команды /setdescription, /setabouttext, /setuserpic соответственно.

Очистите сайт ⛏️

Чтобы очистить веб-сайт, мы должны сначала узнать, что нам нужно. На этом сайте мы замечаем, что название и цена товара будут нашим главным интересом.

В любом современном браузере мы можем запустить инструмент проверки элементов , чтобы узнать структуру HTML сайта, который мы посещаем. Нам нетрудно понять, что этот сайт использует внутри элементов собственный атрибут itemprop для их уникальной идентификации, и мы можем это использовать.

-5

Собрав знания о сайте, мы можем начать писать скрипт Python для его очистки. Нам понадобится несколько пакетов, запустите следующую команду, чтобы установить их с помощью Pipenv, современного менеджера пакетов для Python; вам следует начать использовать его, если вы еще этого не сделали:

-6

Хорошей практикой является не вставлять токен или секрет напрямую в код, поэтому давайте создадим файл с именем .envи поместим в него наш токен API Telegram и идентификатор чата.

-7

Далее мы создадим файл Python с именем main.py и начнем с загрузки переменной среды из .env файла и импорта необходимых модулей.

-8
Примечание: load_dotenv() будет автоматически проанализирован .envфайл, который мы создали ранее, и пара ключ/значение будет загружена в переменную системной среды, доступ к которой можно будет получить os.getenv() позже.

Теперь мы объявим несколько постоянных переменных и воспользуемся списком, чтобы включить элементы, в обновлении которых мы заинтересованы.

-9
Мы используем os.gentenv() для получения переменной среды, которую мы установили ранее, и используем токен для формирования URL-адреса API Telegram. Обратите внимание, что мы используем f-Strings для , он был представлен в Python 3.6 и призван сделать форматирование строк более простым и понятным. С другой стороны, у нас может быть несколько записей в файле ./sendMessage TELEGRAM_API_SEND_MSG

Наконец, мы используем цикл для просмотра элементов и очистки их названий и цен с помощью анализатора HTML BeautifulSoup, а затем отправляем данные в Telegram API, используя наши TOKEN и CHAT_ID.

-10
Примечание. С помощью BeautifulSoup мы можем использовать селекторы CSS для перемещения по HTML и поиска интересующего нас элемента, а затем извлечения из него данных. Словарь data содержит параметры, которые будут отправлены в Telegram /sendMessageAPI с помощью POST-запроса. chat_id и text являются обязательными параметрами, хотя parse_mod eявляются необязательными, мы используем режим анализа Markdown, чтобы отображать в нашем сообщении жирный и встроенный URL-адрес.

К этому моменту, если мы попытаемся запустить программу, мы должны получать сообщения от нашего бота в Telegram.

-11
-12

Автоматизируйте процесс с помощью AWS ⏰

Мы собираемся использовать два сервиса AWS, чтобы автоматизировать процесс очистки сайта и отправить цену себе через Telegram API.

  • AWS Lambda — давайте запустим фрагмент кода/скрипта/функции в облаке, даже не подготавливая и не управляя каким-либо сервером.
  • События AWS CloudWatch — позволяют нам планировать автоматические действия, которые будут автоматически запускаться в определенное время и дату.

Однако мы не собираемся развертывать наше приложение вручную, с помощью такого сервиса, как Serverless, мы можем определить, как мы будем развертывать наше приложение, в YAML-файле и выполнить развертывание с помощью одной команды.

Во-первых, нам необходимо установить и настроить AWS CLI и Serverless CLI.

Далее serverless-python-requirements необходим плагин для упаковки и развертывания приложения Python с помощью внешних пакетов.

-13

Теперь мы собираемся немного изменить main.py и обернуть его функцией, которую Lambda сможет распознать и выполнить:

-14

Далее мы создаем файл serverless.yml со следующими конфигурациями:

-15
Примечание . Мы сообщаем Serverless развернуть нашу основную функцию в файле main.py и запланировать событие CloudWatch для запуска функции в 8 утра по всемирному координированному времени каждый день, используя выражение CRON. Мы используем плагин, который мы установили ранее, чтобы указать бессерверной системе упаковать необходимые пакеты, используя указанные в Pipfile от Pipenv.

Мы развертываем наше приложение, выполнив следующую команду:

-16

После развертывания мы можем вручную вызвать функцию и проверить, работает ли она:

-17

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

.

❤️ Если вам понравилась статья, ставьте лайк и подписывайтесь на мой канал "Заходи в Ай-Ти".

👍 Если у вас остались вопросы или есть интересные темы, которые вы хотите, чтобы я разобрал, то пишите в комментариях. Ваше мнение очень важно для меня!

.

#python telegram bot #создание бота в телеграм #как сделать бота в телеграм #телеграм бот на python #как создать бота в телеграм #telethon python #создание бота для телеграма #создание бота в телеграм