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

如何在R中自动获取PSE网站近7天的风电发电数据?

解决自动获取PSE网站近7天风发电数据的方案

原代码仅能抓取页面显示的当日数据,而网站的历史数据需通过「Eksport za okres」功能提交日期范围导出。以下是用R基础工具+dplyr实现的自动获取方案:

核心思路

  • 模拟网站导出功能的POST请求,提交近7天的日期参数
  • 解析返回的结构化数据(CSV格式)
  • 用dplyr完成数据清洗与过滤

完整代码

# 加载所需包
library(httr)
library(dplyr)

# 定义近7天的日期范围(含当日)
date_start <- Sys.Date() - 6  # 起始为7天前的日期,确保覆盖7天周期
date_end <- Sys.Date()

# 转换为网站要求的日期格式(YYYY-MM-DD)
date_start_str <- format(date_start, "%Y-%m-%d")
date_end_str <- format(date_end, "%Y-%m-%d")

# 发送POST请求获取导出数据
response <- POST(
  url = "https://www.pse.pl/dane-systemowe/funkcjonowanie-kse/raporty-dobowe-z-pracy-kse/generacja-zrodel-wiatrowych/export",
  body = list(
    date_from = date_start_str,
    date_to = date_end_str,
    format = "csv"
  ),
  encode = "form"
)

# 检查请求是否成功
if (http_status(response)$category != "Success") {
  stop("请求失败,状态码:", status_code(response))
}

# 解析CSV数据
wind_data <- content(response, type = "text/csv", encoding = "UTF-8", show_col_types = FALSE)

# 数据清洗与过滤(根据实际CSV结构调整列名)
wind_data <- wind_data %>%
  mutate(Date = as.Date(Date)) %>%
  filter(Date >= date_start & Date <= date_end)

# 查看结果
head(wind_data)

关键说明

  • 用httr::POST模拟手动提交日期范围的操作,无需依赖浏览器自动化工具
  • 日期范围计算:Sys.Date() - 6确保包含当日在内共7天数据
  • 若网站导出接口的参数或格式发生变化,需通过浏览器开发者工具重新抓包确认接口地址与参数名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:20:25