Captura de dados (Tweets) em tempo real com Python.

Gabi Fernandes
@gabifernandesc
Published in
5 min readNov 21, 2020

Neste artigo exploro o passo a passo para capturar dados em tempo real com API do Twitter e Python.

Para capturar estes dados, o primeiro passo é criar uma conta no Twitter (se você não tiver) e, em seguida, criar uma conta dev.

Sua conta deve pode ser criada neste link: https://developer.twitter.com/en

Importante! Cuidado ao descrever o motivo da utilização dos dados, você pode ser inativada e perder sua conta.

Crie a API e grave todas as chaves geradas. Para a construção do API em Python precisaremos de 4 chaves. São elas: API key, API secret key, Access token e Access token secret.

As duas primeiras chaves API key e API secret key, serão disponibilizadas logo ao criar o API, já as chaves Access precisam ser solicitadas em sua dashboard.

Atenção que as Access podem ser visualizadas apenas uma única vez, por isso, salve em um local seguro.

Com as chaves em mãos, partimos para o código em Python que terá 5 partes.

O código foi desenvolvimento no VS Code, uma vez que estabelece comunicação direta com o Jupyter Lab (que será utilizado em seguida para a execução e extração de fato dos dados) através do Anaconda.

Parte 1 - Importar Bibliotecas

O primeiro passo será a importação das seguintes bibliotecas:

Vamos explorar um pouco estas bibliotecas?

Os dados vindos do Twitter estarão em formato JSON, sendo assim, precisaremos dela para manipular estes dados.

Tweepy é a biblioteca do próprio Twitter e será necessária para fazer as requisições do dado para o Twitter, as autenticações relacionado nosso código com os dados do Twitter, mais precisamente, com as chaves que também serão acionadas em 2 momentos.

No cadastro das chaves no código e também na função MAIN.

A datetime merece destaque. Esta biblioteca impedirá de sobrescrever um dato, já que criaremos uma única paste e os dados enviados para esta pasta serão sobrescritos se não tiverem alguma diferença entre eles.

Sendo assim, colocar a data e a hora completa, com hora, minutos e segundos, torna cada dado único (principalmente, pelos segundos, considerando que capturaremos em tempo real).

Importante testar o datetime antes da execução final, assim você não perde dados nem o preciso tempo!

Veja o código com a importação das bibliotecas:

Passo a passo para testar o datetime no terminal do VS Code

1- abra o terminal e verifica se está conectado com o anaconda

2- digite: python e execute

3- digite: from datatime import datatime e execute

4- digite o formato: datetime.now().strftime(“%Y-%m-%d-%H-%M-%S”)

5- execute e deverá retornar a data e a hora completa

Passo 2 - Cadastrar as 4 chaves de acesso

Este passo é muito simples, consiste em criar as variáveis e armazenar as chaves.

Não compartilhe suas chaves com ninguém!

Veja o código.

Passo 3 - Armazenar os Tweets

Neste passo, criaremos o arquivo de saída (a pasta) que irá armazenar os tweets coletados.

Aqui chamamos o datetime e configuramos nos parâmetros o formato da data de hora, sendo: ano, mês, dia e hora, minuto e segundo respectivamente.

O out recebendo o método open que abre um arquivo e o usa para escrita retornando uma referência para um objeto file.

Veja o código:

Passo 4 - Criar a classe

Bom, aqui utilizaremos o conceito de programação orientada a objetos e herança, onde, a classe MyListener herda a StreamListener e, ao criarmos uma nova classe para conectar com o Twitter, podemos reescrevê-la.

Ao solicitar os dados, reescreveremos 2 partes que consiste em indicar para o Python o que queremos quando: 1- encontrar os dados (on_data) e, 2- der erro(on_error).

A classe StreamListener estabelece conexão com a API Stream do Twitter.

Diferente do módulo de requisição que pedimos ao Twitter dados já armazenados em sua base de dados, aqui, estamos solicitando dados em tempo real.

Então, no Stream criamos uma conexão que irá requisitar os novos tweets que aparece uma determinada palavra ou expressão chave que estaremos monitorando e, será definida no próximo passo.

Veja o código:

Passo 5 - Implementar a Função Main

A função main é a função principal do programa e quando for acionada fará a conexão autenticando as chaves e iniciará o monitoramento da palavra ou expressão chave escolhida.

É aqui que tudo acontece, o botão start!

O uso do “if __name__ == ‘__main__’” para a chamada da função main permite que esse arquivo contendo uma ou várias funções seja incluído em outros programas (usando “import” e suas variações) sem a necessidade de reescrever ou copiar o código.

Veja o código:

Aqui finalizamos a parte do VS Code e agora iremos para o Jupyter Lab para rodar o código.

Como disse anteriormente, se você já faz uso do VS Code e do Anaconda com o Jupyter Lab devidamente instalado, ao abrir o seu Jupyter Lab você encontrará a pasta do seu projeto com o código desenvolvido no VS Code.

O próximo passo será criar um notebook dentro da pasta para os passos seguintes.

Trabalhando no Jupyter Lab

Já com o ambiente do notebook aberto, vamos importar as bibliotecas que utilizamos no código python.

Importante ressaltar que o JSON não precisa, já temos por padrão neste ambiente. Então, conforme o código abaixo, instale o tweepy e o datetime.

Código de instação: !pip install tweepy datetime

PLAY ▶

Para iniciar a coleta dos dados, você deve usar o seguinte código:

!python <nome_do_arquivo>.py

Ao iniciar, o arquivo contendo os dados coletados deve aparecer na sua pasta e quando acreditar que tem o suficiente é só parar a execução.

Acessando a pasta você terá todos os dados do Tweet.

veja:

Sim, é um dado denso já que normalmente contém imagens ou vídeo.

Agora só trabalhar estes dados nas etapas de transformação….

Espero ter ajudado compartilhando este conteúdo :)

Este e outros códigos estão em meu GitHub.

Valeuuu!!!

--

--

Gabi Fernandes
@gabifernandesc

Data Science student | Entrepreneur | Business Intelligence | Developer