Rotina para gerar listas de cnpjs a partir da base de dados públicos da Receita Federal. Este programa utiliza uma base local em sqlite cnpj.db, que deve ser gerada utilizando o projeto https://github.com/rictom/cnpj-sqlite ou pelo programa Rede_Cria_Tabelas.
Os arquivos csv zipados com os dados de CNPJs estão disponíveis em https://dados.gov.br/dados/conjuntos-dados/cadastro-nacional-da-pessoa-juridica---cnpj ou https://arquivos.receitafederal.gov.br/cnpj/dados_abertos_cnpj/
Como a base ocupa bastante espaço, é recomendável ter 100GB de SSD disponível como disco principal no computador, bem como 16GB de memória RAM.
Uma versão executável está na pasta apps deste repositório. Foi gerado pela biblioteca pyinstaller e testado em Windows 10. Para gerar o arquivo cnpj.db, baixe o programa Rede_Cria_Tabelas disponível em https://www.redecnpj.com.br/rede/pag/aplicativo.html?src=gh e execute as partes 1 e 2 desse programa (baixar as bases e gerar a base cnpj.db). Descompacte o arquivo cnpj_listas.win.zip e salve o arquivo cnpj.db na mesma pasta que cnpj_listas.exe. Para executar, clique duas vezes no .exe.
É recomendável criar um ambiente para rodar o projeto, siga as orientações em https://docs.python.org/pt-br/3/library/venv.html. O arquivo cnpj.db deve estar na mesma pasta que o script cnpj_listas.py.
No console, dentro de um ambiente python, para instalar as bibliotecas utilizadas, rode pip install -r requirements.txt
Para executar o script para gerar listas, digite
python cnpj_listas.py
A primeira vez que o script for rodado, irá gerar índices no arquivo cnpj.db. Isso poderá levar dezenas de minutos ou horas para execução, dependendo do computador. O arquivo cnpj.db final terá mais de 60GB!
O script irá abrir uma janela no navegador padrão:
Digite um cnpj (pode ter pontos ou traços) e clique em Consulta. Vai aparecer o resultado:
Podem ser colocados vários CNPJs separados por espaços ou vírgulas.
Pode-se utilizar a busca por parâmetros, por exemplo, Órgãos Federais em Brasília:
As consultas podem ser feitas por UF, Município, CEP, Natureza Jurídica, CNAE primária ou secundária, Situação Cadastral, Porte da Empresa, Opção Simples, Opção Mei, Data de Início de Atividades e Capital Social.
Pressionando o botão Exportar, vai resultar em:
Clicando no link para o arquivo, pode-se salvar o resultado em planiha:
Para definir a quantidade de resultados, digite nos campos "Limite de Registros na Tela" para número de registros se apertar o botão Consultar, ou "Limite de Registros para Exportar para o Excel" quando se apertar o botão Exportar.
Lembre-se que a base tem mais de 60 milhões de empresas, então dependendo dos parâmetros as consultas poderão demorar.
Python 3.12;
Bibliotecas pywebio, pandas, sqlalchemy e nest_asyncio.
Esse projeto é utiliza a biblioteca pywebio (https://pywebio.readthedocs.io/en/latest/), que facilita a construção de uma interface mínima em python.
Se o projeto for útil, faça uma doação para a Paróquia do Padre Júlio Lancelotti: https://www.oarcanjo.net/site/doe/
Em caso de erros, dúvidas ou sugestões, abra uma issue (https://github.com/rictom/cnpj_consulta/issues) neste repositório.
Projeto para visualizar os relacionamentos de sócios e de empresas de forma gráfica: https://github.com/rictom/rede-cnpj;
Carregar os dados de cnpjs para o banco de dados MYSQL: https://github.com/rictom/cnpj-mysql.
versão 0.2 (abril/2025)
- opção para exportar listas
versão 0.1 (janeiro/2022)
- primeira versão