Versão do Python: 3.6.6
-
git clone https://github.com/giuliocc/transparencia.git
-
pip3 install -r requirements.txt
-
scrapy startproject transparencia
-
cd transparencia/transparencia/spiders
-
scrapy genspider planilhas
-
Analise o fluxo de download de planilhas no site com alguma ferramenta (aba "Network" do browser, Postman, Mitmproxy, etc., eu prefiro o Mitmproxy)
-
Siga os três commits iniciais deste repositório e veja as alterações feitas em cada um
-
A partir do quarto commit, é necessário criar uma conta na AWS e criar um usuário IAM
8.1. Guarde as seguintes informações do usuário IAM criado: "user arn", "access key id" e "secret access key"
8.2. Nunca disponibilize estes dados publicamente!
-
Adicione o arquivo .env na mesma pasta do arquivo settings.py com a
ACCESS_KEY_ID
eSECRET_ACCESS_KEY
do usuário IAM -
Siga os commits até o sétimo commit, vendo todas as alterações feitas de um commit para o outro, para entender a lógica.
-
No sétimo commit, já é possível fazer o upload de planilhas do tópico escolhido pro S3, executando
python run.py
12.1. Para fazer o upload de todas as disponíveis, execute
python run.py
com a linhaprocess.crawl(PlanilhasSpider, all=True)
descomentada e a linhaprocess.crawl(PlanilhasSpider)
comentada12.2. Para fazer o uploade apenas do dia atual, execute
python run.py
normalmente -
No sétimo commit, também já é possível hospedar este código no Heroku.
-
Crie uma conta no Heroku
-
Adicione o addon "Heroku Scheduler" na aba "Resources" do app Heroku
-
Faça o Heroku Scheduler executar o comando
python run.py
diariamente no horário desejado -
Após estes passos, seu sistema de extração automática de dados do Portal da Transparência está pronto
-
Para realizar as análises, faça download dos arquivos armazenados no S3 (usar o programa awscli é mais prático)
-
Dê
unzip
em todos os arquivos baixados -
Faça suas análises
-
Para alguma referência de como usar os dados das planilhas, há um Jupyter Notebook na pasta "analise"
Qualquer dúvida, sugestão, reclamação, xingamento, etc., envie um email para gcc@cin.ufpe.br
Autores:
- Giulio Carvalho Cavalcante
- Iury Adones Xavier dos Santos