You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用RStudio自动下载指定网站目录中最新添加的气象数据归档文件

用R自动下载DWD最新RADOLAN逐小时气象数据归档文件

以下是实现自动识别并下载目标网站最新气象归档文件的R代码,同时可自动处理文件解压与扩展名调整:

1. 加载所需R包

需要用到xml2解析网页、lubridate处理时间、httr完成文件下载,先确保已安装这些包:

# 安装依赖包(首次运行需执行)
install.packages(c("xml2", "lubridate", "httr"))

# 加载包
library(xml2)
library(lubridate)
library(httr)

2. 解析网页获取文件列表与修改时间

目标网站是Apache索引页,可直接解析HTML提取文件信息,过滤出.tar.gz格式的归档文件:

# 目标目录URL
base_url <- "https://opendata.dwd.de/climate_environment/CDC/grids_germany/hourly/radolan/recent/asc/"

# 读取并解析网页
page <- read_html(base_url)
file_nodes <- html_nodes(page, "tr")[-1:-3]  # 跳过表头与无关行

# 提取每个归档文件的名称和修改时间
file_info <- lapply(file_nodes, function(node) {
  link <- html_attr(html_node(node, "a"), "href")
  # 只保留.tar.gz格式的归档文件
  if (grepl("\\.tar\\.gz$", link)) {
    mod_time_str <- html_text(html_node(node, "td:nth-child(3)"))
    # 转换为时间格式(DWD服务器用欧洲柏林时间)
    mod_time <- dmy_hms(mod_time_str, tz = "Europe/Berlin")
    list(filename = link, modified = mod_time)
  } else {
    NULL
  }
})

# 整理为数据框
file_df <- do.call(rbind, Filter(Negate(is.null), file_info))

3. 筛选最新文件并下载

按修改时间排序,取最新的文件进行下载:

# 按修改时间降序排序,获取最新文件
latest_file <- file_df[order(file_df$modified, decreasing = TRUE), ][1, ]
latest_file_url <- paste0(base_url, latest_file$filename)

# 设置本地保存路径(可自行修改)
save_path <- "./dwd_radolan_data/"
dir.create(save_path, recursive = TRUE, showWarnings = FALSE)

# 下载文件到本地
local_file <- file.path(save_path, latest_file$filename)
GET(latest_file_url, write_disk(local_file, overwrite = TRUE))

4. 自动处理文件扩展名/解压归档

如果需要自动解压.tar.gz归档,并调整文件扩展名(根据你的需求修改):

# 解压归档文件到指定路径
untar(local_file, exdir = save_path)

# 示例:修改解压后.asc文件的扩展名(比如改为.dat)
extracted_asc_files <- list.files(save_path, pattern = "\\.asc$", full.names = TRUE)
file.rename(extracted_asc_files, gsub("\\.asc$", ".dat", extracted_asc_files))

注意事项

  • 若目标网页的HTML结构发生变化,可能需要调整html_nodes的选择器;
  • 确保R环境能正常访问外网,若有代理需提前配置;
  • 可将上述代码封装为函数,方便定时运行(比如用taskscheduleR包实现定时任务)。

内容的提问来源于stack exchange,提问作者J Maya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:27:07