All Projects → turicas → Socios Brasil

turicas / Socios Brasil

Licence: lgpl-3.0
Captura os dados de sócios das empresas brasileiras na Receita Federal e exporta para um formato legível por humanos

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Socios Brasil

Salarios Magistrados
Baixa as planilhas de salários de magistrados, extrai os contracheques, limpa e exporta pra CSV
Stars: ✭ 248 (-44.27%)
Mutual labels:  opendata, brazil, datascience
Brasil.io
Backend do Brasil.IO (para código dos scripts de coleta de dados, veja o link na página de cada dataset)
Stars: ✭ 780 (+75.28%)
Mutual labels:  hacktoberfest, opendata, brazil
genero-nomes
Classifica nomes por gênero de acordo com API do IBGE
Stars: ✭ 33 (-92.58%)
Mutual labels:  brazil, opendata, datascience
Eleicoes Brasil
Scripts para capturar dados do Repositório de Dados Eleitorais do TSE, limpá-los, normalizá-los e agrupá-los
Stars: ✭ 85 (-80.9%)
Mutual labels:  hacktoberfest, opendata, brazil
Op Website Hugo
Projeto do Site https://OsProgramadores.com
Stars: ✭ 99 (-77.75%)
Mutual labels:  hacktoberfest, brazil
Openml
Open Machine Learning
Stars: ✭ 489 (+9.89%)
Mutual labels:  hacktoberfest, opendata
Finmind
Open Data, more than 50 financial data. 提供超過 50 個金融資料(台股為主),每天更新 https://finmind.github.io/
Stars: ✭ 1,357 (+204.94%)
Mutual labels:  hacktoberfest, opendata
Calculadora Do Cidadao
💵 Tool for Brazilian Reais monetary adjustment/correction
Stars: ✭ 96 (-78.43%)
Mutual labels:  hacktoberfest, brazil
Virgilio
Virgilio is developed and maintained by these awesome people. You can email us virgilio.datascience (at) gmail.com or join the Discord chat.
Stars: ✭ 13,200 (+2866.29%)
Mutual labels:  hacktoberfest, datascience
Minha Receita
🏢 Sua API web para consulta de informações do CNPJ da Receita Federal
Stars: ✭ 255 (-42.7%)
Mutual labels:  hacktoberfest, brazil
municipios-br
Dados em formato aberto sobre municípios e unidades federativas do Brasil.
Stars: ✭ 58 (-86.97%)
Mutual labels:  brazil, opendata
Open-Data-Lab
an initiative to provide infrastructure for reproducible workflows around open data
Stars: ✭ 26 (-94.16%)
Mutual labels:  opendata, datascience
Climate Change Data
🌍 A curated list of APIs, open data and ML/AI projects on climate change
Stars: ✭ 195 (-56.18%)
Mutual labels:  hacktoberfest, datascience
blog.brasil.io
Blog do Brasil.IO
Stars: ✭ 24 (-94.61%)
Mutual labels:  brazil, opendata
Polemicas E Tretas Dev
As polêmicas e tretas 🇧🇷 versionadas
Stars: ✭ 258 (-42.02%)
Mutual labels:  hacktoberfest, brazil
Quaternion
A Qt5-based IM client for Matrix
Stars: ✭ 438 (-1.57%)
Mutual labels:  hacktoberfest
Metaflow
🚀 Build and manage real-life data science projects with ease!
Stars: ✭ 5,108 (+1047.87%)
Mutual labels:  datascience
Matter
Customizable GRUB theme inspired by Material Design
Stars: ✭ 439 (-1.35%)
Mutual labels:  hacktoberfest
Check postgres
Nagios check_postgres plugin for checking status of PostgreSQL databases
Stars: ✭ 438 (-1.57%)
Mutual labels:  hacktoberfest
Icons
Named, vector icons for elementary OS
Stars: ✭ 443 (-0.45%)
Mutual labels:  hacktoberfest

Sócios de Empresas Brasileiras

Script que baixa todos os dados de sócios das empresas brasileiras disponíveis no site da Receita Federal, extrai, limpa e converte para CSV. Para entender melhor sobre quais dados estão disponíveis, consulte a história desse dataset.

Licença

A licença do código é LGPL3 e dos dados convertidos Creative Commons Attribution ShareAlike. Caso utilize os dados, cite a fonte original e quem tratou os dados, como: Fonte: Receita Federal do Brasil, dados tratados por Álvaro Justen/Brasil.IO. Caso compartilhe os dados, utilize a mesma licença.

Dados

Entrada

Os dados publicados pela Receita Federal do Brasil contemplam as seguintes tabelas:

  • Cadastro das empresas, incluindo CNPJ, razão social, nome fantasia, endereço, CNAE fiscal e outros;
  • Cadastro de sócios, contendo CNPJ da empresa, documento do sócio, nome do sócio e outros;
  • CNAEs secundários para cada CNPJ.

Os dados originalmente estão em um formato fixed-width file e cada linha possui um tipo diferente de registro (empresa, sócio, CNAE secundária, header ou trailler), que dificulta qualquer tipo de análise, sendo necessária a conversão para formatos mais amigáveis.

O campo de qualificação do sócio foi definido com base na tabela disponibilizada pela Receita Federal e está disponível no arquivo qualificacao-socio.csv. Em breve também teremos arquivos com os nomes dos CNAEs e situação cadastral (veja mais detalhes aqui).

Saída

Além de extrair os dados do arquivo origingal, o script gera uma nova tabela contendo as empresas que são sócias de outras empresas (para facilitar buscas de holdings).

Caso você não queira/possa rodar o script, acesse diretamente os dados convertidos no Brasil.IO.

Se esse programa e/ou os dados resultantes foram úteis a você ou à sua empresa, considere fazer uma doação ao projeto Brasil.IO, que é mantido voluntariamente.

Como resultado temos os seguintes arquivos:

  • empresa.csv.gz: cadastro das empresas;
  • socio.csv.gz: cadastro dos sócios;
  • cnae-secundaria.csv.gz: lista de CNAEs secundárias;
  • holding.csv.gz: cadastro das empresas que são sócias de outras empresas (é o arquivo socio.csv.gz filtrado por sócios do tipo PJ).

Além disso, os arquivos contidos nas pastas schema e schema-full podem te ajudar a importar os dados para um banco de dados (veja comandos para SQLite e PostgreSQL abaixo).

Nota 1: a extensão .gz quer dizer que o arquivo foi compactado usando gzip. Para descompactá-lo execute o comando gunzip arquivo.gz (não é necessário descompactá-los caso você siga as instruções de importação em SQLite e PostgreSQL).

Nota 2: a codificação de caracteres original é ISO-8859-15, mas o script gera os arquivos CSV em UTF-8.

Nota 3: se você estava usando os dados no formato anterior, veja como converter os novos para o padrão antigo no arquivo sql/04-create-old-views.sql.

Privacidade

Para garantir a privacidade, evitar SPAM e publicar apenas dados corretos, o script deleta/limpa algumas colunas com informações sensíveis ou incorretas. Essa é a forma padrão de funcionamento para não facilitar a exposição desses dados. Os dados censurados são:

  • Na tabela empresa:
    • Deletadas as colunas codigo_pais e nome_pais, pois os dados contidos nelas estão incorretos;
    • Deletada a coluna correio_eletronico, para evitar SPAM;
  • Na tabela socio:
    • Deletadas as colunas codigo_pais e nome_pais, pois os dados contidos nelas estão incorretos;
    • As colunas complemento, ddd_fax, ddd_telefone_1, ddd_telefone_2, descricao_tipo_logradouro, logradouro, numero terão seus dados deletados (ficarão em branco) para empresas que são empreendedores individuais (MEI, EI, EIRELI etc.) e, provavelmente, correspondem aos dados do sócio (endereço residencial, por exemplo);
    • Para os casos de empresas individuais que constarem o CPF na razão social (como é comum no caso de MEIs), o CPF será deletado.

Caso queira rodar o script sem o modo censura, altere o script run.sh e adicione a opção --no_censorship para o script extract_dump.py.

Dados auxiliares

  • Cadastro Nacional de Atividades Empresariais (CNAE): existe um spider que baixa os metadados das atividades empresariais (CNAEs) do site do IBGE. Veja a função extract_cnae no arquivo run.sh, ela baixará os dados para as versões 1.0, 1.1, 2.0, 2.1, 2.2 e 2.3 e salvará em data/output. Nota: esse script será melhorado/alterado, veja a issue #36.
  • Natureza jurídica: o arquivo data/natureza-juridica.csv contém o cadsatro de naturezas jurídicas das empresas (coluna codigo_natureza_juridica da tabela empresa). Esse arquivo é gerado pelo script natureza_juridica.py, que baixa os dados do site da Receita Federal.

Rodando

Instalando as Dependências

Esse script depende de Python 3.7, de algumas bibliotecas e do software aria2. Depois de instalar o Python 3.7 e o aria2, instale as bibliotecas executando:

pip install -r requirements.txt

Executando

Então basta executar o script run.sh para baixar os arquivos necessários e fazer as conversões:

./run.sh

Você poderá rodar etapas separadamente também (leia o script run.sh para mais detalhes).

Agilizando o Download

O servidor da Receita Federal onde os dados estão hospedados é muito lento e, por isso, o Brasil.IO disponibiliza um mirror de onde o download pode ser feito mais rapidamente. Para executar o script baixando os dados do mirror, execute:

./run.sh --use-mirror

Nota: os mirrors do Brasil.IO ainda estão em fase de testes e não é garantido que estejam sempre atualizados.

Importando em Bancos de Dados

Depois de executar o script ou baixar os dados já convertidos, o ideal é importá-los em um banco de dados para facilitar consultas. Com a interface de linha de comando da rows é possível importá-los rapidamente em bancos SQLite e PostgreSQL.

Nota 1: depois de importar os dados em um banco de dados é recomendável a criação de índices para agilizar as consultas. Um índice bem comum é na coluna cnpj (de todas as tabelas), para facilitar encontrar uma determinada empresa, seus sócios e CNAEs secundários através do CNPJ. Exemplo: CREATE INDEX IF NOT EXISTS idx_empresa_cnpj ON empresa (cnpj);. Veja o arquivo sql/create-indexes.sql para uma lista de índices sugeridos; veja também os outros arquivos da pasta sql/ para criação de tabelas auxiliares, chaves primárias e estrangeiras e o arquivo import-postgresql.sh para automatizar o processo de importação e criação dos índices.

Nota 2: caso utilize a opção --no_censorship, utilize os arquivos da pasta schema-full em vez da pasta schema, pois a versão "sem censura" possui mais colunas.

SQLite

Instale a CLI da rows e a versão de desenvolvimento da biblioteca rodando (requer Python 3.7+):

pip install rows[cli]
pip install -U https://github.com/turicas/rows/archive/develop.zip

Agora, com os arquivos na pasta data/output basta executar os seguintes comandos:

DB_NAME="data/output/socios-brasil.sqlite"
rows csv2sqlite --schemas=schema/empresa.csv data/output/empresa.csv.gz "$DB_NAME"
rows csv2sqlite --schemas=schema/holding.csv data/output/holding.csv.gz "$DB_NAME"
rows csv2sqlite --schemas=schema/socio.csv data/output/socio.csv.gz "$DB_NAME"
rows csv2sqlite --schemas=schema/cnae-secundaria.csv data/output/cnae-secundaria.csv.gz "$DB_NAME"

Pegue um café, aguarde alguns minutos e depois desfrute do banco de dados em data/output/socios-brasil.sqlite. :)

PostgreSQL

Instale a CLI da rows, as dependências do PostgreSQL e a versão de desenvolvimento da biblioteca rodando (requer Python 3.7+):

pip install rows[cli]
pip install rows[postgresql]
pip install -U https://github.com/turicas/rows/archive/develop.zip

Agora, com os arquivos na pasta data/output basta executar os seguintes comandos (não esqueça de preencher a variável POSTGRESQL_URI corretamente):

POSTGRESQL_URI="postgres://<user>:<pass>@<host>:<port>/<dbname>"  # PREENCHA!
rows pgimport --schema=schema/empresa.csv data/output/empresa.csv.gz $POSTGRESQL_URI empresa
rows pgimport --schema=schema/socio.csv data/output/empresa-socia.csv.gz $POSTGRESQL_URI empresa_socia
rows pgimport --schema=schema/socio.csv data/output/socio.csv.gz $POSTGRESQL_URI socio
rows pgimport --schema=schema/cnae-secundaria.csv data/output/cnae-secundaria.csv.gz $POSTGRESQL_URI cnae_secundaria

Pegue um café, aguarde alguns minutos e depois desfrute do banco de dados em $POSTGRESQL_URI. :)

Outras Implementações

Em R:

Em Python:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].