liibre / coronabr

Pacote para fazer o download dos casos diários de coronavirus no Brasil desde diferentes fontes
https://liibre.github.io/coronabr/
51 stars 14 forks source link

Extrair dados do novo portal #17

Closed jtrecenti closed 4 years ago

jtrecenti commented 4 years ago

Parece que é possível extrair os dados do novo portal (covid.saude.gov.br) rodando

library(magrittr)

u_base <- "https://xx9p7hp1p7.execute-api.us-east-1.amazonaws.com/prod/"
endpoints <- c("PortalGeral", "PortalRegiao", "PortalSemana", 
               "PortalDias", "PortalAcumulo", "PortalMapa")

links <- paste0(u_base, endpoints)
headers <- httr::add_headers("X-Parse-Application-Id" = "unAFkcaNDeXajurGB7LChj8SgQYS2ptm")

covid_br <- links %>% 
  purrr::set_names(endpoints) %>% 
  purrr::map(httr::GET, headers) %>% 
  purrr::map(httr::content, simplifyDataFrame = TRUE) %>% 
  purrr::map("results") %>% 
  purrr::map(tibble::as_tibble)

A estrutura de dados é diferente, então pode ser difícil adaptar o pacote.

Também não sei se a application ID pode mudar de tempos em tempos, e não encontrei um jeito fácil de obtê-lo dinamicamente.

AndreaSanchezTapia commented 4 years ago

Obrigada Julio, vamos testar e incorporar!

belisards commented 4 years ago

Oi, agora dá para extrair a série histórica diretamente em CSV pelo site, mas parece que a URL muda todo dia... a ver se segue algum padrão: http://covid.saude.gov.br/

saramortara commented 4 years ago

sim, obrigada! estávamos fazendo o download diário para poder manter o histórico e hoje eles mudaram isso... vamos ver como fica amanhã. mas estamos mexendo para a função puxar diretamente o csv. só falta ver se fica estável ;)

saramortara commented 4 years ago

@jtrecenti e @belisards, vocês conseguiram captar automaticamente a url do csv de hoje?

jtrecenti commented 4 years ago

Não sei se estou pensando de forma muito simplista, mas isso aqui foi suficiente pra mim!

httr::GET(sprintf("https://covid.saude.gov.br/assets/files/COVID19_%s.csv", format(Sys.Date(), "%Y%m%d")))
jtrecenti commented 4 years ago

talvez assim tbm, sem precisar usar datas...


path_file <- "https://covid.saude.gov.br/14-es2015.5904e62a87702c6e2c79.js" %>% 
  httr::GET() %>% 
  httr::content("text", encoding = "latin1") %>% 
  stringr::str_extract("(?<=href=\")[a-z/]+COVID19_.*\\.csv")

httr::GET(paste0("https://covid.saude.gov.br", path_file))
saramortara commented 4 years ago

perfeito! estava presa no json mas isso resolve. Vamos ver como fica amanhã

saramortara commented 4 years ago

@jtrecenti, vamos incluí-lo como contributor do nosso pacote, tudo bem para você?

jtrecenti commented 4 years ago

Claro, valeu :)))