if (!require(tidyverse)) {install.packages("tidyverse")}
if (!require(readxl)) {install.packages("readxl")}
if (!require(httr)) {install.packages("httr")}
if (!require(lubridate)) {install.packages("lubridate")}
if (!require(glue)) {install.packages("glue")}
begin <- ymd("2022-02-01")
end <- ymd("2022-02-07")
days_to_retrieve <- c(begin, begin + days(1:as.integer(interval(begin, end) / days(1))))
get_dayly_data <- function(day_to_retrieve) {
url <- glue("https://www.bvc.com.co/mercados/DescargaXlsServlet?archivo=acciones&fecha={as.character(day_to_retrieve)}&resultados=100&tipoMercado=1")
GET(url, write_disk(tf <- tempfile(fileext = ".xls")))
df <- read_excel(tf, 1L)
str(df)
if (any(dim(df) == c(0, 0))) {
return(tibble(`Nemotecnico` = "", `Ultimo Precio` = double()))
}
df %>%
select("Nemotecnico", "Ultimo Precio")
}
selected_species <- c("CELSIA", "NUTRESA", "BCOLOMBIA") ## example of selected species
datos <- days_to_retrieve %>%
map(get_dayly_data) %>%
set_names(days_to_retrieve) %>%
enframe() %>%
unnest(cols = c(value))
datos %>%
filter(Nemotecnico %in% selected_species)