dude333 / rapina Goto Github PK
View Code? Open in Web Editor NEWBrazilian companies' financial reports directly from the CVM and B3 servers.
License: MIT License
Brazilian companies' financial reports directly from the CVM and B3 servers.
License: MIT License
Download file from CVM every time rapina get is executed and compare the checksum with the current file. If files are different, remove all values on DB for that year and statement type and reinsert the updated values.
Line 505 in a1cd9ec
Tudo bem? Parabéns pela aplicação! Pode me dizer se os arquivos da CVM disponibilizam o DRA, ou se eles são resultados de algum cálculo? Estou meio perdido. Obrigado!
Commit 39e7166 introduced a bug. It tries to avoid data duplication in the case a new version of the file is loaded on CVM server, but instead of removing only the data corresponded to the file being imported it deletes all data from a specific CNPJ and year.
Values used: S.A., SA and S/A.
Some companies change it during time, as Lojas Renner, in the last update they change, only for 2012-2013 to SA.
Sou leigo na parte de computação como um todo, ao abrir o programa arrastando-o para o cmd recebo o seguinte comunicado:
Rapina - Dados Financeiros de Empresas Brasileiras - v0.11.0-2020-05-29
(2018-2020) github.com/dude333/rapina
Este programa coleta informações sobre os dados financeiros do
site da CVM e os exporta para uma planilha. Dados usados: balanço
patrimonial ativo e passivo, e também o demonstrativo de resultado
do exercício (DRE).
Uso:
rapina [command]
Comandos Disponíveis:
get Baixa os arquivos da CVM e os armazena no bando de dados
help Help about any command
list Lista informações armazenadas no banco de dados
report Cria planilha com dados da companhia escolhida
Flags:
-h, --help help for rapina
-t, --toggle Help message for toggle
Poderia me ajudar?
Boa noite Dude,
Estava escrevendo um projeto para executar as mesmas atividades! Foi um grande supresa encontrar o seu projeto.
Como eu poderia contribuir para o projeto? Tem um roadmap?
Gostaria de marcar um bate-papo?
Abs,
no macos
só consigo esta frase bloqueando
sabe como proceder? obrigado
Line 150 in a1cd9ec
Listei todas as empresas e tentei também pelo report
e não aparece a SANEPAR,
ainda estou aprendendo GO e tentando entender o código para colaborá em um futuro próximo.
verifiquei o arquivo setores.yml
e ela se encontra lá nomeada de CIA SANEAMENTO DO PARANA - SANEPAR
.
Estou no momento usando o executável
ola amigo dude!
passando para avisar que já consta na base de dados aberta todos os dados dos fundos imobiliários
agora acho que consiguirás fazer report de alto nível também para os FIIs
espero que gostes da notícia
e mais uma ve4z me coloco a disposição para criarmos os indicadores
grande abraço
Percebi que o setores.yaml não atualiza. O motivo disso é que a B3 mudou o link que o Colly fazia scrape.
Pensei em algumas alternativas pra resolver isso:
Na primeira alternativa, dei uma pesquisada e descobri no javascript (minified) essa linha:
getCompanies(t) {
return this.httpClient.get(this.baseUrl + "GetInitialCompanies/" + btoa(JSON.stringify(t))).pipe(Object(z.a)(1), Object(W.a)(this.handleError))
}
eles usam a função btoa()
pra criar um base64 de alguma coisa. Teríamos que descobrir o que seria essa coisa.
Como eu tenho essa lista de setores atualizadas aqui do meu lado, vou fazer do meu jeito; mas seria legal se alguém fizesse isso 🙏🏻
Alguém consegue implementar isso?
Uso do Formulário de Referência (FRE) para coleta do número de ações em circulação.
(Dica de u/crcelso)
fre_cia_aberta_distribuicao_capital_2020.csv
:
CNPJ_Companhia | 60.840.055/0001-31 |
---|---|
Data_Referencia | 01/01/2020 |
Versao | 6 |
ID_Documento | 99778 |
Quantidade_Acionistas_PF | 209.571 |
Quantidade_Acionistas_PJ | 283 |
Quantidade_Acionistas_Investidores_Institucionais | 749 |
Quantidade_Acoes_Ordinarias_Circulacao | 303.800.430 |
Percentual_Acoes_Ordinarias_Circulacao | 95,73% |
Quantidade_Acoes_Preferenciais_Circulacao | 0 |
Percentual_Acoes_Preferenciais_Circulacao | 0% |
Quantidade_Total_Acoes_Circulacao | 303.800.430 |
Percentual_Total_Acoes_Circulacao | 100% |
Data_Ultima_Assembleia | 31/07/2020 |
Hey, @dude333 , first and foremost thanks for open sourcing this project 😃 .
A lot of interesting analyses are made possible by your project!
Is it possible to report quarterly results? (resultados trimestrais?)
Thanks!
Vou estudar o código e pensar no que ajudar... Tem algum ponto mais urgente que precisa de ajuda? Trabalho co research/valuation, pensei em adicionar algo do tipo o que acha?
Abs!
Olá!
Primeiro, gostaria de parabenizá-lo pela contribuição magnífica na comunidade open-source e de investimentos.
Em segundo lugar, tenho uma sugestão de adicionar os dados por trimestre nos balanços. Seria possível com os dados disponibilizados?
Obrigado!
Contexto
Atualmente os relatórios de DFP e ITR são gerados em excel, seria interessante possibilitar a geração destes diretamente no stdout como está sendo feito com FII.
Objetivo
O objetivo desta feature é permitir que se use ferramentas de Unix+Terminal+Software de Terceiros para analisar os dados gerados, permitindo que o rapina se torne uma base de armazenamento e ponto de partida para data science dos dados financeiros.
Comportamentos esperados
Espera-se que a execução de um comando report
com -format=stdout gere os relatórios da companhia via stdout. O relátorio esperado é apenas de dados brutos (contas numeradas) sem apresentar as análises verticais ou horizontais e o P&L que está ao final do excel.
Para facilitar a manipulação, converter dados que estão em formato coluna (período anual) para formato linha adicionando colunas adicionais. Por exemplo:
Relatório presente no Excel:
AZUL S.A. | -- | [2016] | [2017] |
---|---|---|---|
1 | Ativo Total | 8,400 | 10,317 |
1.01 | Ativo Circulante | 1,910 | 3,304 |
1.01.01 | Caixa e Equivalentes de Caixa | 549 | 762 |
Seria convertido para
AZUL S.A. | -- | -- | -- |
---|---|---|---|
2016 | 1 | Ativo Total | 8,400 |
2016 | 1.01 | Ativo Circulante | 1,910 |
2016 | 1.01.01 | Caixa e Equivalentes de Caixa | 549 |
2017 | 1 | Ativo Total | 10,317 |
2017 | 1.01 | Ativo Circulante | 3,304 |
2017 | 1.01.01 | Caixa e Equivalentes de Caixa | 762 |
Condições para validação
./rapina report -format=stdout azul
ola dude! Você viu que a CVM vai compilar todos os dados em um unico ZIP??? vai valer a partir de setembro. vai alterar como o programa funciona?
obrigado
dude333, bom dia!
Primeiramente, parabéns pelo excelente trabalho! É, de longe, a melhor ferramente de aquisição de dados aberta disponível no Brasil.
Uma dúvida de iniciante em relação ao script:
O último release (0.10.0) compila os dados até 2019, contudo, a maioria das empresas já divulgou os resultados do 1T20, e vejo que os dados são atualizados em tempo real na CVM (p.ex. http://dados.cvm.gov.br/dados/CIA_ABERTA/DOC/DFP/DRE/DADOS/ - dre_cia_aberta_2020.zip). Rodando o script com o comando get [-s], o cmd retorna erro em relação aos dados de 2020.
Você saberia me explicar o motivo? Só será possível acessar os balanços de 2020 em 2021?
Olá, bom dia!!
Inicialmente gostaria de agradecer pela publicação desta excelente ferramenta para análise de empresas!!
Não consigo calcular o CAPEX pelos dados fornecidos pelo arquivo gerado no report pois não encontrei os itens "Imobilizado" e "Intangível" dentro do item "Caixa Líquido de Atividades de Investimento", que normalmente apresenta código 6.02.
Gostaria de saber se existe a possibilidade de adicionar estas variáveis ao relatório para que possamos calcular o CAPEX
Agradeço desde já!!
System
Linux fedora 5.15.10-100.fc34.x86_64 #1 SMP Fri Dec 17 14:51:10 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Contexto
Primeira execução para composição da base de dados
Comportamento esperado
Atualiação da base de dados sem erro
Comportamento atual
Erro de certificado: Get "https://bvmf.bmfbovespa.com.br/cias-listadas/empresas-listadas/BuscaEmpresaListada.aspx?opcao=1&indiceAba=1&Idioma=pt-br": x509: certificate signed by unknown authority
Detalhe
Estou usando fedora 34 (Linux fedora 5.15.10-100.fc34) e na hora de executar o comando rapina update
recebo o erro de certificado
zama@fedora ~/Downloads/rapina $ uname -a
Linux fedora 5.15.10-100.fc34.x86_64 #1 SMP Fri Dec 17 14:51:10 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
zama@fedora ~/Downloads/rapina $ ls
-rwxr-xr-x 1 zama zama 6574204 Dec 28 11:54 rapina
zama@fedora ~/Downloads/rapina $ ./rapina update -s
Rapina - Dados Financeiros de Empresas Brasileiras - v1.0.1-2021-05-12
(2018-2020) github.com/dude333/rapina
[√] Coletando dados ===========
[ ] Lendo informações do site da B3
[x] Get "https://bvmf.bmfbovespa.com.br/cias-listadas/empresas-listadas/BuscaEmpresaListada.aspx?opcao=1&indiceAba=1&Idioma=pt-br": x509: certificate signed by unknown authority
Solução
Esse erro é da própria distribuição Linux, acredito que valeria apenas uma melhoria no README explicando como importar manualmente os certificados da B3
Add sector name on sheet 'SETOR', cell D1.
Example: Saúde > Comércio e Distribuição > Medicamentos e Outros Produtos
primeiramente parabens pelo codigo.
eu tenho alguns indicadores que gosto de usar porem nao encontro eles normalmente nos sites habituais.
se tiver como,
como eu faço pra ajudar a colocar estes indicadores na planilha de excel? e tambem o valuation da empresa?
obrigado
Boa tarde @dude333 !
O que te levou a escolher desenvolver este pacote usando GO ao invés de linguagens mais populares, como o Python? Só a título de curiosidade...
Parabéns pelo projeto! :)
Mano parabéns pelo projeto! Estava querendo começar algo parecido e encontrei seu projeto. Estou tentando abrir o report .xlsx das empresas no Python, porém não consigo devido a algum problema de codificação do arquivo. É possível corrigir isso abrindo o arquivo no excel e salvando novamente, porém é inviável fazer isso para mais de 400 arquivos. Alguma ideia de como resolver?
Eu não conheço Go, por isso até considerei abrir o BD diretamente no Python. Estou estudando NextJS e pretendo criar um servidor web com essas informações. Se tiver alguma sugestão estou aberto para implementar.
Abraços!
Boa tarde.
Fiz algumas pesquisas pra tentar entender pq algumas empresas não estão nos arquivos e consequentemente não se encontram no report.
http://bvmf.bmfbovespa.com.br/cias-listadas/empresas-listadas/resumoempresaprincipal.aspx?codigocvm=18627&idioma=pt-br
http://bvmf.bmfbovespa.com.br/cias-listadas/empresas-listadas/ResumoEmpresaPrincipal.aspx?codigoCvm=18309&idioma=pt-br
http://bvmf.bmfbovespa.com.br/cias-listadas/empresas-listadas/ResumoEmpresaPrincipal.aspx?codigoCvm=14443&idioma=pt-br
Faz idéia se algo justifica?
Obrigado.
Olá, boa noite, primeiramente obrigado pelo programa, muito funcional,
Eu particurlamente não estou conseguindo baixar os arquivos ITR de 2020, pelo comando rapina GET, o erro é "Erro ao processar arquivo: arquivo não encontrado"
Gostaria de saber se o problema é só comigo ou com mais alguém.
Mais uma vez, obrigado 01/07/2020
Baixei na release o arquivo rapina, mas quando tento executar aparece: "rapina: rapina: cannot execute binary file"
Olá, estou passando pelo mesmo problema reportado por alguns usuários antes ao não conseguir abrir o executável.
Estou usando o Windows 10 e apesar de abrir o cmd na pasta onde o executável está, não consigo executar os comandos. O erro apontado é o seguinte: 'rapina' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.
Tem alguma resolução? Desde já agradeço.
Olá bom dia, o programa está com problema no calculo da TTM DRE dos dados trimestrais, ele está somando os dois primeiros trimestres do ano 2019 com os dois primeiros trimestres do ano 2020, o certo seria a soma dos dois ultimos trimesre do ano 2019 com os dois primeiros trimestres do ano 2020.
Acredito que o fluxo de caixa e valor adicionado contenham o mesmo erro, obrigado
Replace ToALphaString() with func ColumnNumberToName(num int) (string, error)
excelize.ColumnNumberToName(37) // returns "AK", nil
Add error checking for GetCellValue:
Before:
func (f *File) GetCellValue(sheet, axis string) string
Now:
func (f *File) GetCellValue(sheet, axis string) (string, error)
Olá @dude333 , seria de grande utilidade obter as informaçoes das companhias com seus respectivos CNPJS, Tickers e setor de atuação.
Ótimo programa,
obrigado
EF
Parabéns pelo empenho, estou estudando quem sabe poder ajudar nesse projeto.
Na minha geração, para 2019 eu não vejo dados, é o esperado?
[√] Coletando dados ===========
[>] 2019 ---------------------
[ ] BPA já processado anteriormente
[ ] BPP já processado anteriormente
[ ] DRE já processado anteriormente
[x] ---- Sem dados para 2019
[>] 2018 ---------------------
[ ] BPA já processado anteriormente
[ ] BPP já processado anteriormente
[ ] DRE já processado anteriormente
[ ] DFC_MD já processado anteriormente
[ ] DFC_MI já processado anteriormente
[ ] DVA já processado anteriormente
[>] 2017 ---------------------
Add free cash flow (FCL = FCO + FCI).
Cara parabéns pelo projeto!
Fiquei com uma dúvida. Você está usando a ferramenta do download múltiplo para baixar as informações da CVM?
Eu estava construindo um robô em python, pegando as informações em html mesmo e jogando para um banco de dados SQL, no entanto agora a CVM implementou um captcha no site dela, e meu robô não funciona mais. Ai pesquisando encontrei seu programa.
Outra dúvida que tenho, vi que você pega as informações do total de ações. Seria possível pegar as informações de ações ON e PN também?
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.