msperlin / GetDFPData

Repository for package GetDFPData
33 stars 7 forks source link

Erro ao obter links para arquivos DFP #16

Open dinhani opened 5 years ago

dinhani commented 5 years ago

Ao executar o seguinte código para obter os links dos arquivos DFP, ocorre o seguinte erro:

GetDFPData::get_files(5410, "dfp")

"Error in data.frame(id.company = my.id, id.file, version.file, dl.link,  : 
  arguments imply differing number of rows: 1, 9, 0"

Para outros formatos como ITR e FCA, continua funcionando.

msperlin commented 5 years ago

Testei aqui e funcionou. Chegaste a atualziar para a nova versão?

dinhani commented 5 years ago

Testei tanto com a versão do CRAN como do GitHub, e ambas parecem ser a mais recente (1.5).

sessionInfo()

R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252    LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C                      
[5] LC_TIME=Portuguese_Brazil.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] GetDFPData_1.5

loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2    yaml_2.2.0 

Debuguei o código e problema está acontecendo na hora de pegar o version.file. Ele está ficando como uma lista de 9 elementos ao invés de um vetor de 9 elementos.

[[1]]
character(0)

[[2]]
character(0)

[[3]]
character(0)

[[4]]
character(0)

[[5]]
character(0)

[[6]]
character(0)

[[7]]
character(0)

[[8]]
character(0)

[[9]]
character(0)

Acredito que o problema esteja aqui:

version.file <- stringr::str_match_all(temp, pattern = "Vers.o (.*)</a>") version.file <- sapply(version.file, function(x) return(x[, 2]))

O conteúdo da variável temp está assim para mim:

"<a id=\"ctl00_contentPlaceHolderConteudo_rptDemonstrativo_ctl00_lnkDocumento\" onmouseout=\"writetxt(0);\" onmouseover=\"writetxt(MontaHint('31/12/2018','Legislação Societária/Legislação Societária','Apresentação','20/02/2019 7:36','P'));\" href=\"javascript:AbreFormularioCadastral('http://www.rad.cvm.gov.br/ENETCONSULTA/frmGerenciaPaginaFRE.aspx?NumeroSequencialDocumento=80762&amp;CodigoTipoInstituicao=2')\">31/12/2018 - Demonstrações Financeiras Padronizadas - Versão 1.0</a>"

Aí a regex Vers.o (.*)</a> não está conseguindo capturar isso aqui: Versão 1.0 porque ela foi feita para capturar Versão 1.0.

Se mudar a regex para Vers.+o (.*)</a> o código funciona.

msperlin commented 5 years ago

Me parece ser um problema com o Windows, de novo. Vou checar e dou uma resposta assim q possível.

msperlin commented 5 years ago

Was able to replicate the bug in Windows. Need to debug in a windows machine...