Skip to content

Coletor de dados do Twitter para projeto de pesquisa sobre as Eleições de 2018

License

Notifications You must be signed in to change notification settings

resocie/instagram-data-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monitor de Dados do Instagram

Este repositório compõe projeto de pesquisa com foco empírico nas eleições brasileiras de 2018 do grupo de pesquisa Resocie do Instituto de Ciência Política - IPOL com o apoio técnico do Departamento de Computação - CIC da Universidade de Brasília - UnB.

O projeto consiste na coleta sistemática de informações quantitativas da plataforma Instagram com o objetivo de subsidiar a análise do comportamento político de alguns atores da cena eleitoral durante o período de campanha. Além de seu objetivo finalístico para a coleta de dados, o projeto tem também por intuito servir de material de estudo dos alunos da disciplina Engenharia de Software do Departamento de Ciência da Computação da UnB no 1º semestre de 2018.

As instruções a seguir trazem orientações para aqueles que quiserem contribuir com a iniciativa.

Preparar ambiente

Um bom processo de trabalho em desenvolvimento de software começa com a preparação de um ambiente adequado de programação.

Instalar pacotes básicos

O Henrique Bastos fez uma postagem super relevante sobre organização de ambientes python. Vale a leitura.

Clonar repositório

$ git clone git@github.com:code4pol/instagram-data-monitor.git

Criar virtual env

$ mkvirtualenv instagram-data-monitor
$ workon instagram-data-monitor

Instalar dependências

Todas as bibliotecas de que o projeto depende estão listadas no arquivo requirements.txt. Para instalá-las, execute:

$ cd instagram-data-monitor
$ pip install -r requirements.txt

Acesso à API do Instagram

Acesse a página de desenvolvedores do Instagram para registrar a aplicação que lhe possibilitará acesso à API da plataforma.

Após registro da aplicação, atualize o arquivo instagram.py com suas infos particulares.

insta_user='YOUR_USERNAME'         # Seu usuário no Instagram
insta_password='YOUR_PASSWORD'     # Sua senha no Instagram
client_id='YOUR_CLIENT_ID'.        # O client_id fornecido pelo Instagram para a aplicação registrada
redirect_uri='YOUR_REDIRECT_ID'    # A _redirect URI_ informada por você para a aplicação registrada. 
                                   # Não sabe o que é isso? Faz parte do protocolo OAuth2. Google it!

Selenium

O projeto utiliza a biblioteca Selenium para obteção do access_token necessário para acesso à API, o que requer a utilização de um navegador web. Foi escolhido o Google Chrome em sua opção headless. É preciso que você ajuste o path de execução do navegador na opção chrome_options.binary_location do arquivo instagram.py. Caso você não tenha o Google Chrome instalado, será necessário configurar o Selenium para utilização de outra opção de web browser.

Independente do browser escolhido, é necessário o download do webdriver necessário para que o Selenium saiba interagir com ele. No caso do Google Chrome, os drivers estão disponíveis na página do projeto. Percebam que consta atualmente em nosso repositório apenas os drivers do Google Chrome para o MacOS. Caso você utilize outro sistema operacional, também que fazer o download de driver compatível.

Executar os testes

Todos os testes foram desenvolvidos utilizando a biblioteca unittest nativa do Python. Para executá-los, a partir da pasta raiz do projeto, execute:

$ python -m unittest discover tests

Sugiro darem uma olhada nesta ótima introdução ao unittest

ToDo

Este é apenas um esqueleto de projeto para que o grupo comece a trabalhar. Resta ainda muito trabalho a ser feito. Algumas ideias:

  • Corrigir testes quebrados
  • Complementar testes
  • Remover código hard-coded
  • Corrigir código replicado
  • Otimizar execução de tarefas que não precisam ser executadas várias vezes
  • Remover mensagens de DeprecationWarning
  • Expandir quantidade dos dados buscados
  • Explorar novas possibilidades de coleta
  • Avaliar estratégia de uso da API. Qual a diferença da estratégia utilizada para o projeto twitter-data-monitor?
  • Criar interface CLI para execução do programa
  • Implementar mecanismo para automatização da coleta recorrente dos dados
  • Persistir dados coletados em base estruturada
  • Viabilizar interface de integração da base de dados criada com canal para geração de informações visuais

Licença

Código disponível sob Licença MIT

About

Coletor de dados do Twitter para projeto de pesquisa sobre as Eleições de 2018

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages