Back-End

18 nov, 2016

Bot Telegram mais web scraping – Parte 01

Publicidade

Vou separar o artigo em 2 partes para não ficar extenso. Nessa primeira parte, irei falar um pouco como criar um bot no Telegram e como programá-lo para nos responder.

Primeiro de tudo, precisamos cria o bot. Para isso, usamos o próprio bot do telegram que faz isso para gente. Bastar iniciar uma conversa com o @BotFather, que irá nós dar algumas opções:

/newbot - create a new bot
/token - generate authorization token
/revoke - revoke bot access token
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setinline - change inline settings
/setinlinegeo - toggle inline location requests
/setinlinefeedback - change inline feedback settings
/setcommands - change bot commands list
/setjoingroups - can your bot be added to groups?
/setprivacy - what messages does your bot see in groups?
/deletebot - delete a bot
/newgame - create a new game
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game
/cancel - cancel the current operation

As que nos interessam, por enquanto, são:

/newbot - Cria um novo bot. 
/setdescription - Adiciona uma descrição ao nosso bot.
/setuserpic - Adiciona uma imagem ao nosso bot.

Feito issom agora temos um token, que iremos usar para dar funções e vida ao bot. Para isso, iremos usar a lib telegram-bot, que vai facilitar nossa vida, assim não precisaremos mexer diretamente com a API do Telegram.

Instalando telegram-bot utilizando o pip

pip install python-telegram-bot

Agora, com a biblioteca instalada, iremos programar um mini bot para nos falar as horas:

#!/usr/bin/env python3
# -*- coding:utf-8  -*-

from telegram.ext import Updater, CommandHandler
from time import strftime

up = Updater('Insira o token aqui.')


def Horas(bot, update):

    msg = "Olá {user_name} agora são: "
    msg += strftime('%H:%M:%S')

    bot.send_message(chat_id=update.message.chat_id,
                     text=msg.format(
                         user_name=update.message.from_user.first_name))


up.dispatcher.add_handler(CommandHandler('horas', Horas))
up.start_polling()

Entendendo o código

  1. Importamos tudo que iremos utilizar;
  2. Informamos o token do nosso bot;
  3. Criamos uma função que pega a horas com strftime e responde no chat;
  4. Criamos um comando para o nosso bot, no caso o /horas;
  5. Startamos o bot.

Feito isso, quando mandar um /horas para o bot, ele irá nos responder com: “Olá, SeuNome! agora são X horas”.

Caso você queira adicionar mais funções ao bot, aqui está a documentação da biblioteca.

Na próxima parte iremos escolher alguns sites que falem sobre Python e fazer Scraping neles, assim sempre que eles tiverem uma nova postagem, nosso bot vai nós enviar uma mensagem informando.