【发布时间】:2022-07-21 23:12:11
【问题描述】:
我想下载使用 Rstudio 添加到本网站的最后一个存档(气象数据);
https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/
你知道怎么做吗?我可以特别下载一个,但是我必须编写确切的扩展名,并且每次都应该手动更改它,我不希望这样,我希望它自动检测到。
谢谢。
【问题讨论】:
标签: r
我想下载使用 Rstudio 添加到本网站的最后一个存档(气象数据);
https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/
你知道怎么做吗?我可以特别下载一个,但是我必须编写确切的扩展名,并且每次都应该手动更改它,我不希望这样,我希望它自动检测到。
谢谢。
【问题讨论】:
标签: r
函数download_CDC() 为您下载文件。输入号码1将下载网站提供的最新的,并带有各自的名称。
library(tidyverse)
library(rvest)
base_url <- "https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/"
files <- base_url %>%
read_html() %>%
html_elements("a+ a") %>%
html_attr("href")
download_CDC <- function(item_number) {
base_url <- "https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/"
download.file(paste0(base_url, files[item_number]),
destfile = files[item_number],
mode = "wb")
}
download_CDC(1)
【讨论】:
这有点幼稚(没有错误检查,盲目地从文件列表页面获取最后一个链接),但适用于该特定列表。
R 中的大部分网络抓取都是通过 rvest 进行的,html_element("a:last-of-type") 通过 CSS 选择器提取最后一个 <a> 类型的元素 - 你的最后一个存档。并且html_attr('href') 从最后一个<a>-元素中提取href 属性——文件的实际链接。
library(rvest)
last_link <- function(url) {
last_href <- read_html(url) |>
html_element("a:last-of-type") |>
html_attr('href')
paste0(url,last_href)
}
url <- "https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/"
last_link(url)
#> [1] "https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/RW-20220720.tar.gz"
由reprex package (v2.0.1) 于 2022 年 7 月 21 日创建
【讨论】: