rictom / rede-cnpj Goto Github PK
View Code? Open in Web Editor NEWVisualização gráfica de relacionamentos entre sócios e empresas com dados públicos de CNPJ.
License: MIT License
Visualização gráfica de relacionamentos entre sócios e empresas com dados públicos de CNPJ.
License: MIT License
Fiz o passo a passo que indicaste, mas estou com um erro na execução do rede cnpj
As imagens dos erros estão no link abaixo.
Estou instando em uma máquina local.
https://1drv.ms/f/s!AsGroCl_KokkiN47zTY3PZnWe9zxOg?e=UTVCmG
Também pareceu-me que está faltando uma parte no manual, entre o usar a base completa dos cnpjs.
Olá, tudo bem? Espero que sim!
Primeiro de tudo gostaria de parabenizá-lo pelo projeto desenvolvido. Ademais, estou tendo problemas ao conectar a rede-cnpj pelo console. Após colocar o prompt do anaconda na pasta de redes e executar o comando ---> python rede.py, obtenho o texto abaixo como output:
(base) C:\Users\andrew.santos_freteb\Documents\rede-cnpj-master\rede>python rede.py
Carregando rede_sqlite_cnpj
Utilizando rede_sqlite_cnpj como rede_relacionamentos.
módulo rede_spacy não foi carregado: No module named 'textract'
Traceback (most recent call last):
File "C:\Users\andrew.santos_freteb\Documents\rede-cnpj-master\rede\rede.py", line 40, in
limiter = flask_limiter.Limiter(app, key_func=get_remote_address) #, default_limits=["200 per day", "50 per hour"])
TypeError: init() got multiple values for argument 'key_func'
Já instalei as supostas bibliotecas que faltam, tais como: textract, folium, aiohttp, entre outras... Já que após instalada, O module named ' ' muda, tornando um ciclo infinito... Se possível, gostaria de uma ajuda para resolver o impasse!
Mt obg!!
Andrew.
Esse é o errro:
Tue Jul 25 17:55:42 2023 -executando parte: 3/4
insert into id_search
--select distinct id_descricao
select id_descricao
from (
select 'PJ_' || te.cnpj ||'-' || t.razao_social as id_descricao
from cnpj.estabelecimento te
left join cnpj.empresas t on t.cnpj_basico=te.cnpj_basico
where te.matriz_filial is '1'
UNION ALL
select 'PJ_' || te.cnpj ||'-' || te.nome_fantasia as id_descricao
from cnpj.estabelecimento te
-- where trim(te.nome_fantasia) <>'' --incluir este where faz que ignore cnpj filial sem nome fantasia, o que faz falta na hora de busca filiais por cnpj básico
UNION ALL
select id1 as id_descricao
from rede.ligacao
where substr(id1,1,3)<>'PJ_'
UNION ALL
select id2 as id_descricao
from rede.ligacao
where substr(id2,1,3)<>'PJ_'
) as tunion
group by id_descricao --talvez group by seja mais rápido que distinct
Traceback (most recent call last):
File "D:\rede-cnpj-master - julho\rede-cnpj-master\rede\bases\rede_cria_tabela_rede.db.py", line 246, in
executaSequencia(camDBrede_search, sqlsequencia=sql_search)
File "D:\rede-cnpj-master - julho\rede-cnpj-master\rede\bases\rede_cria_tabela_rede.db.py", line 163, in executaSequencia
engine.execute(sql)
sqlite3.OperationalError: disk I/O error
Esse erro ocorreu depois de algumas horas travado nessa etapa. Estou rodando novamente para ver se ocorre de novo.
Olá, é possível instalar o "rede-cnpj" em um site, cujo acesso seja por login e senha?
Gostaria de saber como é possível realizar a instalação das demais fontes de dados?
https://www.portaltransparencia.gov.br/download-de-dados/pep
https://www.portaltransparencia.gov.br/download-de-dados/ceaf
https://www.portaltransparencia.gov.br/download-de-dados/ceis
https://www.portaltransparencia.gov.br/download-de-dados/cnep
https://www.portaltransparencia.gov.br/download-de-dados/acordos-leniencia
https://portaldatransparencia.gov.br/download-de-dados/despesas-favorecidos
Antes de tudo, parabéns pela ferramenta! Genial!
Gostaria de sugerir/provocar que houvesse a possibilidade de visualizar a partir de uma localização; Imagino que inicialmente seria por Cidade/UF; Porém, considerando que cada CNPJ tem um endereço; Gostaria que no futuro, caso possível, poderia delimitar um raio de X km com base em um endereço.
Bom, caso esteja no escopo do projeto prover esse tipo de visualização.
Olá, existe a possibilidade de usar bases de dados próprias e privadas em conjunto com as da Receita Federal?
Com o tutorial foi possível rodar perfeitamente no windows, no entanto, ao levar os arquivos gerados (cnpj.db, rede.db, rede_search.db, cnpj_links_ete.db) pelo projeto PROGRAMA RedeCNPJ-Baixar-Converter para um ambiente linux junto com o clone do repo rictom/rede-cnpj consigo realizar busca por CNPJ, mas ao buscar por sócio ou razão social gera erro de não ser possível encontrar a tabela id_search.
Os arquivos foram salvos na pasta bases na raiz do projeto.
É necessário rodar algum script complementar?
Utilizei os seguintes parâmetros de config (rede.ini):
[BASE]
base_rede = bases/rede.db
base_rede_search = bases/rede_search.db
#base_receita, sqlite com dados publicos da Receita Federal.
#se o arquivo sqlite estiver na mesma pasta, coloque apenas base_receita=cnpj.db
#se a base_receita não for definido, é preciso ter o arquivo base_cnpj_vazia.db na pasta do projeto para não ocorrer erro
#se a base_receita não for definido, os botões do github e da Receita Federal não vão aparecer na tela.
base_receita = bases/cnpj.db
#caminho da base de endereços normalizada
base_endereco_normalizado = bases/cnpj_links_ete.db
#caminho da base de ligações adicional (TSE e TCE)
base_links = bases/links.db
#base_local é uma base com dados adicional. estrutura do banco_dados_modelo.db. Pode armazenar informações adicionadas manualmente no gráfico, dados dos nós e de ligações
base_local = bases/rede_dados.db
#referencia_bd aparece na linha superior da tela
referencia_bd = TESTE - PARA EXIBIR DADOS REAIS, É NECESSÁRIO COPIAR AS BASES
#referencia_bd = CNPJ (xx/xx/xxx)
#pasta para armazenar arquivos json
pasta_arquivos=arquivos
porta_flask=5000
[INICIO]
#cpfcnpjinicial cnpj para aparecer no início. Pode ser colocados vários cnpjs separados por ponto e vírgula. Deixe vazio se não quiser que apareça cnpj no inicio.
cpfcnpj =
#níveis de ligações para o cpfcnpjinicial
camada = 1
#exibir mensagem de advertencia e informações da data de referencia
exibe_mensagem_advertencia = 1
#mensagem_advertencia= LEIA ANTES DE PROSSEGUIR.\n\nTodos os dados exibidos são públicos, provenientes da página de dados abertos da Secretaria da Receita Federal ou de portais públicos de transparência.\nO autor não se responsibiliza p>
mensagem_advertencia=A base sqlite de TESTE tem os nomes de sócios e de empresas embaralhados.\nPara inserir um novo elemento aleatório pressione OK sem digitar texto.
#abrir menu inserir na abertura da tela
exibe_menu_inserir = 1
[ETC]
#para evitar excesso de ligações, se ligacaoSocioFilial=0 não inclue ligações para filiais de empresas
ligacao_socio_filial = 0
#se logAtivo=1, registra as consultas nas tabelas log_cpnj e log_cpfnome no arquivo sqlite.
logativo = 0
#permite download da pasta arquivos que não sejam json. Por segurança, desativar no servidor.
arquivos_download = 0
limiter_padrao =2/second;20/minute;200/hour;400/day
limiter_dados =10/second;600/minute
limiter_arquivos =2/minute;30/hour;100/day
#permite busca do google
busca_google = 1
#baixa arquivos e consulta palavras chaves
busca_chaves = 0
#quantidade máxima de itens para geocode
geocode_max = 10
#para de acrescentar niveis se ultrapassar o tempo abaixo em segundos
tempo_maximo_consulta=2
#para de acrescentar niveis se ultrapassar a quantidade de itens abaixo
limite_registros_camada=1000
[API]
api_cnpj=1
api_caminhos=1
api_keys=
#.
Log do app:
Carregando rede_sqlite_cnpj
Utilizando rede_sqlite_cnpj como rede_relacionamentos.
/home/deploy/.local/lib/python3.10/site-packages/flask_limiter/extension.py:293: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: http s://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend.
warnings.warn(
Parabéns pelo projeto.
Curti esta maneira de visualizar os dados da RF, ótimo trabalho!
Gostaria de fazer a visualização offline, mas, após implementar, não consegui replicar a exibição das ligações entre empresas e seus respectivos dados da maneira como está disponibilizado online atualmente. O que está faltando?
Olá, pretende implementar esse novo modelo de dados no projeto?
Olá, como habilitar para apresentar o telefone e o endereço no gráfico ao fazer a consulta do CNPJ?
como apresentado no demo online:
Parece muito boa a proposta! O filme mostra o potencial, infelizmente não terei tempo de testar... Pelo filme e breve análise ficam as sugestões:
ofertar não apenas a visualização mas também o dado ligado relativo à visualização. Idealmente JSON-LD com Organization e Person. Ambos CNPJ e CPF são vatID, ambos possuem name, etc. assim como especificidades, por exemplo a razão social é legalName.
Ilustrar caso simples, ou seja, "menos poluídos". Pode não ser trivial a estatística de principais diretores e/ou pessoas físicas que aparecem com maior número de vínculos num determinado cluster de pessoas jurídicas.
Bom dia,
Atualizei os scritps hoje (git pull) e estou tendo erro ao subir a aplicação. Reinstalei os pacotes do requirements e atualizei o pip. Além disso acrescentei no arquivo requirements.txt os pacotes: spacy, textract, langdetect
Segue o erro:
(base) [root@s1410 rede]# python rede.py
Carregando rede_sqlite_cnpj
Utilizando rede_sqlite_cnpj como rede_relacionamentos.
/opt/anaconda3/lib/python3.10/site-packages/flask_limiter/extension.py:293: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend.
warnings.warn(
Traceback (most recent call last):
File "/opt/coinf/aplicacoes/rede/rede-cnpj/rede/rede.py", line 64, in
api_key_validas = [k.strip() for k in config.config['API'].get('api_keys', '').split(',')]
File "/opt/anaconda3/lib/python3.10/configparser.py", line 964, in getitem
raise KeyError(key)
KeyError: 'API'
(base) [root@s1410 rede]#
Tive um problema na execução do programa para baixar os dados abertos e converter para uso na redecnpj. Na execução do programa 02-dados_cnpj_para_sqlite.exe, houve o seguinte erro:
executando parte 21/21:
fim parcial... Fri Jun 2 20:24:10 2023
fim sqls... Fri Jun 2 20:24:10 2023
Aplicando VACUUM para diminuir o tamanho da base-------------------------------- Fri Jun 2 20:24:21 2023
Traceback (most recent call last):
File "sqlalchemy\engine\base.py", line 1900, in _execute_context
File "sqlalchemy\engine\default.py", line 736, in do_execute
sqlite3.OperationalError: database or disk is full
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "dados_cnpj_para_sqlite.py", line 206, in
File "", line 2, in execute
File "sqlalchemy\util\deprecations.py", line 468, in warned
File "sqlalchemy\engine\base.py", line 3257, in execute
File "sqlalchemy\engine\base.py", line 1365, in execute
File "sqlalchemy\engine\base.py", line 1669, in _exec_driver_sql
File "sqlalchemy\engine\base.py", line 1943, in _execute_context
File "sqlalchemy\engine\base.py", line 2124, in handle_dbapi_exception
File "sqlalchemy\util\compat.py", line 211, in raise
File "sqlalchemy\engine\base.py", line 1900, in _execute_context
File "sqlalchemy\engine\default.py", line 736, in do_execute
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database or disk is full
[SQL: VACUUM]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
[26708] Failed to execute script 'dados_cnpj_para_sqlite' due to unhandled exception!
D:\Programas\rede-cnpj-baixar-converter>
Saliento que estou tentando executar o programa a partir do Drive D, pois no drive C não há espaço suficiente para todos os arquivos.
Fala @rictom, primeiramente parabéns pelo trabalho da Rede de CNPJs.
Me chamo Ian Saud, sou Tech Lead em uma empresa de dados no Rio de Janeiro e trabalho na maioria das vezes com PHP. Estou trabalhando com os dados da RFB há pelo menos 4 anos. Gostaria de saber como consigo entrar em contato com você para uma conversa referente à contribuição em um projeto. Abaixo deixo meu contato caso esteja interessado.
Email: [email protected]
Linkedin: https://www.linkedin.com/in/iansaud/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.