Raspagem e consulta de gastos diretos do Governo Federal
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
converte.py
create-download-script.sh
csv2sqlite.py
download.sh
import.sql
requirements.txt

README.md

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