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

使用R下载CAISO数据文件遇报错,寻求解决方法

解决R下载CAISO数据文件的报错问题

问题分析

你尝试用两种方法下载CAISO的zip数据文件均失败:

  • utils::download.file 设置timeout=120仍提示60秒超时,无法打开URL;
  • curl::curl_download 传入timeout_ms和chunk_size参数时提示“未使用的参数”。

错误原因

  1. download.file超时问题:Windows默认的method="wininet"不支持自定义超时设置,导致timeout=120不生效,仍使用默认60秒超时。
  2. curl_download参数错误:curl_download没有timeout_ms和chunk_size这两个直接参数,超时需通过handle对象配置,chunk_size无需额外设置(默认处理已适配大文件)。

修正后的代码

方法1:使用utils::download.file(更换method)

library(utils)

# 修正时间参数为需求中的2017年
zip_url <- "http://oasis.caiso.com/oasisapi/SingleZip?queryname=PRC_INTVL_LMP&startdatetime=20170301T07:00-0000&enddatetime=20170323T07:00-0000&version=3&market_run_id=RTM&node=GONDER_LNODEN1&resultformat=6"
zip_path <- "E:/Data - Test Download/my_data.zip"

# 使用libcurl作为下载方法,确保timeout参数生效
download.file(zip_url, destfile = zip_path, mode = "wb", timeout = 120, method = "libcurl")

方法2:使用curl::curl_download(正确配置handle)

library(curl)

zip_url <- "http://oasis.caiso.com/oasisapi/SingleZip?queryname=PRC_INTVL_LMP&startdatetime=20170301T07:00-0000&enddatetime=20170323T07:00-0000&version=3&market_run_id=RTM&node=GONDER_LNODEN1&resultformat=6"
zip_path <- "E:/Data - Test Download/my_data.zip"

# 创建handle对象设置超时(单位:秒),添加User-Agent避免服务器拦截默认R请求
h <- new_handle(
  timeout = 120,
  useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
)

curl_download(zip_url, zip_path, handle = h)

额外注意事项

  • 确保目标路径E:/Data - Test Download/已存在,否则会出现“无法打开文件”的错误;
  • CAISO API存在请求频率限制,若仍失败可尝试缩短时间范围分批下载;
  • 代码已修正你原代码中的时间参数(从2021年改为需求中的2017年),可根据实际需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:10:45