Esse repositório contém o script necessário para a coleta de dados do Twitter utilizando Python 3.8 e a biblioteca Tweepy para manipulação da API do Twitter.
Os dados coletados serão classificados posteriormente com a ajuda da nossa ferramenta de Crowdsourcing.
Primeiramente, foi necessário entrar em contato com o suporte de desenvolvedor do Twitter e solicitar uma conta com privilégios de desenvolvedor. Isso porque, apenas com esse nível de conta é possível acessar o Portal de Desenvolvedor do Twitter. Após a solicitação ser aprovada, foi criado um projeto de aplicativo que gerou as chaves de API e os tokens de acesso mandatórios para a manipulação da API via código. No caso desse repositório, foram utilizadas a linguagem Python na versão 3.8 e a biblioteca Tweepy.
Dentro da pasta src/twitter encontram-se:
- O arquivo
settings.pycontém todas as variáveis de configuração e também possui acesso ao arquivo.envlocal, que abriga os valores das variáveis de ambiente sensiveis, como as chaves e os tokens utilizados para acessar a API do Twitter. Foi adicionada também nesse arquivo uma lista chamadaTRACKED_TOPICScujos valores são os tópicos desejados para filtrar a coleta de tweets; - O arquivo
tweet_acquisition.py, onde é feita a autenticação com a API do Twitter e são instanciados os objetos necessários para que a coleta de tweets seja realizada. Aqui os parâmetros de filtragem dos tweets também são especificados, onde os tweets devem conter pelo menos uma das palavras-chave definidas na listaTRACKED_TOPICSe devem ser em português; - E o último, o arquivo
stream_listener.pyque abriga todas as regras de negócio da coleta de dados e montagem do csv. Esse script cria, abre e escreve no arquivofiles/raw_stream_output.csvo conteúdo de tweets sem URLs, vídeos, GIFs (ou qualquer outro tipo de mídia), a data e hora em que foram postados, a localização do usuário que postou e as entidades do tweet (como menções, hashtags, etc).
Dentro da pasta files encontram-se:
- O primeiro arquivo com dados coletados não tratados, o
raw_stream_output.csv; - O arquivo Jupyter Notebook onde o csv raiz é tratado (remoção de tweets repetidos) e o novo DataFrame é salvo no próximo e último arquivo;
- O arquivo
filtered_stream_output.csvque contém os dados coletados e tratados.
É necessário possuir Python 3.x, pip e qualquer gerenciador de ambiente virtual instalados para rodar o script.
- Primeiramente, crie o ambiente virtual com o comando
python -m venv venvno terminal. - Em seguida, ative o ambiente com o comando
venv\scripts\activate(Windows) ousource venv/bin/activate(Linux). - Instale as dependências necessárias com o comando
pip install -r requirements.txt. - Para rodar o script, navegue até a pasta
twittercomcd src/twittere execute o comandopython tweet_acquisition.py. - Você pode interromper o streaming manualmente utilizando
Ctrl+Cno terminal. - O arquivo
raw_stream_output.csvserá gerado no diretóriofiles. - Execute o notebook
csv_treatment.ipynbpara remover os tweets repetidos e gerar o novo arquivofiltered_stream_output.py.