library(rvest) # link to data webpage <- read_html("https://eightthirtyfour.com/data") datalinks <- webpage %>% html_nodes(xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "centertable", " " ))]') %>% html_table(fill = TRUE) # base url for links base_url <- "https://eightthirtyfour.com/nba/pbp/" filenames <- datalinks[[1]] %>% dplyr::filter(Season != "all seasons (zip)") %>% dplyr::pull(CSV) download_links <- paste0(base_url, filenames) if(!"data" %in% list.files()) {fs::dir_create("data")} purrr::map2(.x = download_links, .y = paste0("data/", filenames), ~download.file(.x, .y))