如何使用 R 识别网页上最新的可下载文件?
How to use R to identify most up-to-date downloadable file on a web page?
我正在尝试定期检查添加到页面 https://github.com/mrc-ide/global-lmic-reports/tree/master/data 的最新可下载文件的日期,其中文件名类似于 2021-05-22_v8.csv.zip
中提到的代码片段可以通过调整使用,并确定网页上第一个或最早 可下载文件的日期, 如下所示。
library(rvest)
library(stringr)
library(xml2)
page <- read_html("https://github.com/mrc-ide/global-lmic-reports/tree/master/data")
page %>%
html_nodes("a") %>% # find all links
html_attr("href") %>% # get the url
str_subset("\.csv.zip") %>% # find those that end in .csv.zip
.[[1]] # look at the first one
Returns:
[1] “/mrc-ide/global-lmic-reports/blob/master/data/2020-04-28_v1.csv.zip”
问题是识别最新.csv.zip文件日期的代码是什么?例如,2021-05-22_v8.csv.zip 截至 2021-06-01 检查。
目的是如果该日期(即 2021-05-22)> 我在 https://github.com/pourmalek/covir2 (e.g. IMPE 20210522 in https://github.com/pourmalek/covir2/tree/main/20210528 中创建的最新更新),则需要创建一个新更新。
您可以将链接转换为日期并使用which.max
获取最新链接。
library(rvest)
library(stringr)
library(xml2)
page <- read_html("https://github.com/mrc-ide/global-lmic-reports/tree/master/data")
page %>%
html_nodes("a") %>% # find all links
html_attr("href") %>% # get the url
str_subset("\.csv.zip") -> tmp # find those that end in .csv.zip
tmp[tmp %>%
basename() %>%
substr(1, 10) %>%
as.Date() %>% which.max()]
#[1] "/mrc-ide/global-lmic-reports/blob/master/data/2021-05-22_v8.csv.zip"
要获取最新日期的数据,您可以使用 -
tmp %>%
basename() %>%
substr(1, 10) %>%
as.Date() %>% max()
#[1] "2021-05-22"
我正在尝试定期检查添加到页面 https://github.com/mrc-ide/global-lmic-reports/tree/master/data 的最新可下载文件的日期,其中文件名类似于 2021-05-22_v8.csv.zip
library(rvest)
library(stringr)
library(xml2)
page <- read_html("https://github.com/mrc-ide/global-lmic-reports/tree/master/data")
page %>%
html_nodes("a") %>% # find all links
html_attr("href") %>% # get the url
str_subset("\.csv.zip") %>% # find those that end in .csv.zip
.[[1]] # look at the first one
Returns: [1] “/mrc-ide/global-lmic-reports/blob/master/data/2020-04-28_v1.csv.zip”
问题是识别最新.csv.zip文件日期的代码是什么?例如,2021-05-22_v8.csv.zip 截至 2021-06-01 检查。
目的是如果该日期(即 2021-05-22)> 我在 https://github.com/pourmalek/covir2 (e.g. IMPE 20210522 in https://github.com/pourmalek/covir2/tree/main/20210528 中创建的最新更新),则需要创建一个新更新。
您可以将链接转换为日期并使用which.max
获取最新链接。
library(rvest)
library(stringr)
library(xml2)
page <- read_html("https://github.com/mrc-ide/global-lmic-reports/tree/master/data")
page %>%
html_nodes("a") %>% # find all links
html_attr("href") %>% # get the url
str_subset("\.csv.zip") -> tmp # find those that end in .csv.zip
tmp[tmp %>%
basename() %>%
substr(1, 10) %>%
as.Date() %>% which.max()]
#[1] "/mrc-ide/global-lmic-reports/blob/master/data/2021-05-22_v8.csv.zip"
要获取最新日期的数据,您可以使用 -
tmp %>%
basename() %>%
substr(1, 10) %>%
as.Date() %>% max()
#[1] "2021-05-22"