/portaldatransparencia

Raspagem e consulta de gastos diretos do Governo Federal

Primary LanguageShellGNU Lesser General Public License v3.0LGPL-3.0

Abrindo as contas do Governo Federal

Script de raspagem e consulta de gastos diretos do Governo Federal.

Raspagem e estruturação feita em Python, exportando os dados para CSV e SQLite.

Consultas em formato SQL.

Caso você não queira rodar o script em sua máquina, acesse diretamente os dados já convertidos (nota: os arquivos CSVs muito grandes, provavelmente não abrirão em softwares de planilha eletrônica comuns e precisarão de softwares específicos, a recomendação é de utilizar um banco de dados, como SQLite ou MySQL).

Rodando o script

Todo processo leva várias horas, dependendo da sua velocidade de conexão e de processamento.

Pré-requisitos

  • 50GB livres em disco
  • Python3 (com suporte a lzma) e pip
  • wget
  • MySQL

Instale as dependências Python com o comando:

pip install -r requirements.txt

Raspagem e organização do banco

Baixe os arquivos executando o comando:

./download.sh

Nota: esse script baixará dados para anos/meses pré-estabelecidos. Caso queira alterá-los, modifique o script create-download-script.sh e rode-o para gerar um novo download.sh.

O diretório download será criado, com os arquivos ZIP baixados. Para converter os arquivos e consolidá-los em uma base de dados, rode os seguintes comandos:

python converte.py gastos-diretos
python converte.py transferencias

Esses comandos podem demorar alguns minutos (são muitos dados para descompactar, converter e então compactar novamente). Os arquivos output/gastos-diretos.csv.xz e output/transferencias.csv.xz serão gerados.

Caso queira apenas utilizar MySQL, você pode pular para a próxima etapa. Senão, caso queira converter os arquivos CSV para SQLite, execute o comando:

python csv2sqlite.py

O arquivo output/portaldatransparencia.sqlite será gerado.

Importação do banco e consulta

  1. Com o arquivo CSV na mesma pasta do script, importe os dados de gasto direto rodando no terminal:
mysql -u [nomedousuario] -p < import.sql

To-do list

  • Criar índices
  • Reduzir redundância do banco

Reportagens e consultas derivadas

Fonte Dos Dados

Dados Abertos do Portal da Tranparência

Realização