Fiz um twitter bot

Já há algum tempo tenho estado a aprender Python, uma linguagem de programação fácil de aprender e a preferida para os engenheiros de redes dando os primeiros passos em automação. Vou lendo uns livros, uns videozitos no youtube, criando uns programas burros. Mas o bom mesmo é criar um projecto, por mais pequeno que seja, e fazê-lo até ao fim. Como projecto, decidi fazer um bot.

Um bot é um software que faz alguma tarefa repetitiva de forma automatizada e sem necessidade de interacção humana. Neste caso específico, fiz um bot que publica 2 no twitter vezes por dia as estatísticas da Covid-19 em Angola. Pode vê-lo em acção na conta @Covid19AO_Stats. Os dados são capturados do site oficial angolano em http://www.covid19.gov.ao.

Covid19 Angola twitter bot
Covid19 Angola twitter bot

Para este projecto decidi juntar o estudo de Python à minha curiosidade sobre a facilidade de construir aplicações na cloud. Muita gente diz que é fácil, muita gente diz que custa pouco. Nada melhor do que chegar às minhas próprias conclusões.

Arquitectura

A figura abaixo mostra a arquitectura para o projecto. Para fazer o bot utilizei os serviços da Amazon Web Services (AWS) mas acredito que nada impede que seja feita com serviços equivalentes em outros provedores de serviços cloud.

Arquitectura do bot Covid19AO_Stats

Poderia criar uma instância (nome que a AWS dá às máquinas virtuais) funcionando 24h por dia e que executava o código em horários definidos com um cronjob por exemplo. Mas isso é muito old school. O serviço central do projecto é AWS Lambda. AWS Lambda é um serviço que permite executar código sem necessidade de aprovisionar ou gerir servidores. É esta última característica que define os serviços denominados serverless (sem servidores).

Configurei o Lambda com runtime Python 3.6. O código conecta-se ao servidor, baixa a página, processa os valores e publica no twitter usando a API do twitter. Com Cloudwatch Events faço o código “disparar” à hora que quiser ou em intervalos regulares sem ter que o fazer manualmente. Simples neh?

E daí para frente?

Este pequeno bot foi feito simplesmente como um exercício didático ligando vários elementos que incitam a minha curiosidade: Python, webscraping, serverless e cloud. Não tenho por enquanto quaisquer outros objectivos, financeiros por exemplo.

Que achou deste pequeno projecto? Algo a melhorar? Sente-se inspirado a fazer algo parecido?


1 Comment Fiz um twitter bot

  1. Wilson

    Projecto simples com capital importância a nível de informação.

    Inspirador… 🙂

    Reply

Responder a Wilson Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *