如何下载给定 api... 和 URL 的文件?

How can I download files given api... and urls?

我想在 https://data.gov.hk/en-data/dataset/hk-dh-chpsebcddr-novel-infectious-agent/resource/a09134c1-53ea-4916-a573-62cf972562af 下载文件。我选择了从 2019 年 12 月 31 日到 2020 年 4 月 13 日的日期范围。我在那里看到了这样的链接:

https://api.data.gov.hk/v1/historical-archive/get-file?url=http%3A%2F%2Fwww.chp.gov.hk%2Ffiles%2Fmisc%2Fenhanced_sur_covid_19_eng.csv&time=20200411-0928

https://api.data.gov.hk/v1/historical-archive/get-file?url=http%3A%2F%2Fwww.chp.gov.hk%2Ffiles%2Fmisc%2Fenhanced_sur_covid_19_eng.csv&time=20200412-0945

https://api.data.gov.hk/v1/historical-archive/get-file?url=http%3A%2F%2Fwww.chp.gov.hk%2Ffiles%2Fmisc%2Fenhanced_sur_covid_19_eng.csv&time=20200413-0946

如何使用 R 从这些链接下载 10 或 100 个文件?简单的 read_* 函数不会读取这些文件。我没有代码可以在这里分享,因为我不知道如何尝试这个?

这是一个最小的例子。

raw <- readr::read_csv("http://www.chp.gov.hk/files/misc/enhanced_sur_covid_19_eng.csv",
                       col_names = TRUE)

head(raw)
# A tibble: 6 x 10
# [...]

这是一个更完整的示例,将下载的文件保存在 /data-raw 下,如书中所述 R Packages.

file_name <- "enhanced_sur_covid_19_eng.csv"
url <- stringr::str_glue("http://www.chp.gov.hk/files/misc/{file_name}")
raw_data <- stringr::str_glue("data-raw/{file_name}")
reload <- FALSE

if (reload | !file.exists(raw_data)) {
    download.file(url, raw_data)
}

raw <- readr::read_csv(raw_data,
                       col_names = TRUE)

head(raw)
# A tibble: 6 x 10
# [...]