#' @title Recupera dados das proposições que foram apresentadas em
#' um intervalo de datas.
#' @description Recebe uma data inicial e uma data final, retorna as
#' proposições apresentadas no intervalo.
#' @param data_inicial Data inicial do intervalo (formato AAAA-MM-DD)
#' @param data_final Data final do intervalo (formato AAAA-MM-DD)
#' @return Dataframe com lista de proposições apresentadas em um intervalo
#' de datas.
#' @export
fetcher_proposicoes_em_intervalo_senado <-
function(data_inicial = "2020-03-11",
data_final = Sys.Date()) {
library(tidyverse)
url <-
paste0(
"https://legis.senado.leg.br/dadosabertos/materia/pesquisa/lista?dataInicioApresentacao=",
gsub("-", "", data_inicial),
"&dataFimApresentacao=",
gsub("-", "", data_final)
)
proposicoes <- tryCatch({
xml <- RCurl::getURL(url) %>% xml2::read_xml()
data <- xml2::xml_find_all(xml, ".//Materia") %>%
map_df(function(x) {
list(
id = xml2::xml_find_first(x, ".//Codigo") %>%
xml2::xml_text(),
sigla_tipo = xml2::xml_find_first(x, ".//Sigla") %>%
xml2::xml_text(),
numero = xml2::xml_find_first(x, ".//Numero") %>%
xml2::xml_text(),
ano = xml2::xml_find_first(x, ".//Ano") %>%
xml2::xml_text()
)
})
data <- data %>%
mutate(numero = as.numeric(numero),
ano = as.numeric(ano))
}, error = function(e) {
print(e)
data <- tribble(~ id, ~ sigla_tipo, ~ numero, ~ ano)
return(data)
})
return(proposicoes)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.