🇧🇷 Documentação | 🇺🇸 Documentation
- Inicio
- Tabela de Conteudo
- Fazendo tudo rodar
- Usando o Programa
- Rodando os testes
- Verificando estilo
- Heroku
- Banco de dados Heroku
- APScheduled
- Agendamento
- BuildPacks
- Projeto de
- Showcases
Uma vez que se tenha instalado python 3 e Git, baixado o repositório e esteja com um editor de texto adequado (Atom, VSCode, Sublime ou Pycharm), deve-se seguir os seguintes passos:
Criar o ambiente virtual (venv) e entrar no mesmo
python3 -m venv venv
source venv/bin/activate
Para aqueles no Linux ou Mac
make install
Para windows
pip install -r requirements.txt
Uma vez instalados todos os módulos, é necessário configurar o token. Para isso devemos baixar o ChromeDriver, seguindo as instruções do Splinter de acordo com seu sistema operacional: (Instruções para baixar ChromeDriver).
Uma vez com o ChromeDriver instalado corretamente, é necessário setar uma variável de ambiente da seguinte forma: utilizando um editor de texto, vá em venv/bin/activate e, logo abaixo de deactivate() coloque o seguinte comando:
unset GOOGLE_CHROME_SHIM
E, na última linha do arquivo escreva:
export GOOGLE_CHROME_SHIM=$HOME/bin/chromedriver
Agora, para coletar um token, basta utilizar o comando:
make autotoken
Uma vez com todas as configurações feitas, use:
make run
Por enquanto rodar testes é a principal funcionalidade. Em breve serão adicionadas mais funções. Portanto, para testes
make
E para saber qual a cobertura dos testes, use
make cov
Para verificar se o seu código encontra-se bem indentado e bonito, use o seguinte comando
make style
Importante usar este comando antes de mandar uma PR para garantir código mais legível.
O Heroku é uma das mais populares de plataforma como serviço que suporta aplicações escritas em diversas linguagens, dentre elas, Python, java, node, etc.
Primeiro precisa criar uma conta.
requirements.txt - especifica todas as dependencias que a aplicação precisa para rodar dentro do Heroku.
Procfile - especifica os comandos que serão executados pela aplicação dentro da máquina Dynos. Nossa aplicação é um serviço de coleta de dados que será todos dias da semana em um horário especifico. Formato do arquivo: clock: python heroku_clock.py
runtime.txt - especifica a versão do python que é suportada pela aplicação. python-3.6.5
Link Heroku - (facebook-page-post-scraper).
Clone do repositorio: heroku git:clone -a facebook-page-post-scraper
Adicionar um remote:
heroku login
git remote add heroku https://git.heroku.com/facebook-page-post-scraper.git
git pull heroku master
Link Heroku - Git (Deploying with Git).
Link Heroku - Agendamento (Scheduled (Agendamento)).
Utilizamos o banco de dados Heroku Postgres que funciona como um add-on instalado dentro do heroku.
Para a criação da tabela no banco de dados foi necessário instalar o psql na máquina. Depois disso é necessário utilizar o comando abaixo para se conectar com o banco:
psql -h "Host" -U "User" "Database"
As aspas representam as credenciais do banco que podem ser encontradas ao entrar no Heroku Postgres, ir em 'Settings' e depois 'View Credentials'.
Agora que estamos conectados no banco de dados podemos executar vários comandos como criar tabelas, fazer select em tabelas existentes, excluir tabelas, inserir e excluir dados, entre outros. Para a criação da tabela é necessário utilizar o comando:
CREATE TABLE Nome_da_tabela(nome_do_campo tipo_do_campo, ...);
A tabela criada deve ser a utilizada no comando executado na função calldb, portanto, ela deve conter o campos que são utilizados para inserir dados na tabela.
Para exportação dos dados pela web utilizamos uma API Rest e um dyno web no heroku. A API Rest foi implementada em server/rest.py, que disponibiliza os dados em formato JSON de acordo com os endpoints especificados. Para visualizar os endpoints, basta acessar a página inicial:
https://<nome-do-app>.herokuapp.com/
Também é possível rodar localmente, utilizando o Flask, basta usar:
python3 server/rest.py
Para se informar mais sobre O que é uma API Rest.
É uma biblioteca em python que permite realizar agendamento de tarefas (jobs). (APScheduled).
Para automatizar a coleta de dados periodicamente, utilizamos um modelo do heroku de agendamento chamado clock. O programa será executado todos os dias à oito horas da manhã. python heroku_clock.py
Os buildpacks são responsáveis por transformar o código implantado no Heroku, que pode ser executado em um dyno. Os buildpacks são compostos por um conjunto de scripts e, dependendo da linguagem de programação. Para adicionar um BuildPack segue os passos: Settings -> Add buildpack
Segue aqui o link do BuildPack da dependência (chromium-browser) projeto necessita
Universidade de Brasília
Resocie : Repensando as Relações entre Sociedade e Estado
O projeto consiste na coleta sistêmica de informações quantitativas da plataforma Facebook das páginas cadastradas no arquivo de entidades.csv com o objetivo de subsidiar a análise comportamental política dos candidatos durante o período eletorial brasileiro 2018. Além do objetivo principal da coleta sistêmica das informações, o projeto tem também por intuito servir de aprendizado de trabalho em time, de tecnologias utilizadas e integração social entre os alunos da disciplina Engenharia de Software do Departamento de Ciência da Computação da UnB do 1º semestre de 2018.
Apresentação interna pdf Link da apresentação interna no canva