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

使用R下载CME Group动态URL(aspx)文件遇问题

解决R语言抓取CME FedWatch工具「All upcoming meetings」文件的问题

问题原因

你之前的代码仅抓取静态HTML中的<a>标签,但CME网站的「Downloads」标签内容是动态渲染的,静态源码里没有直接暴露下载链接,因此无法通过常规的rvest静态抓取找到文件路径。


解决方案1:直接调用真实下载接口(推荐)

通过浏览器开发者工具的网络请求分析,「All upcoming meetings」的Excel文件真实下载地址是固定的API接口,直接请求即可:

library(readxl)
library(httr)

# 真实文件下载接口URL
file_url <- "https://www.cmegroup.com/CmeWS/mvc/fedwatch/meetings/all/upcoming.xlsx"

# 发送请求并保存文件到本地
response <- GET(file_url)
writeBin(content(response, "raw"), "all_upcoming_meetings.xlsx")

# 读取文件到R环境
fedwatch_data <- read_excel("all_upcoming_meetings.xlsx")
# 查看前几行数据
head(fedwatch_data)

解决方案2:模拟浏览器操作(适配动态页面变化)

如果后续API地址发生变化,可使用RSelenium模拟真实用户点击操作,绕过动态渲染限制:

前置准备

  1. 安装RSelenium包:install.packages("RSelenium")
  2. 下载对应浏览器的驱动(如ChromeDriver),并配置系统环境变量(或在代码中指定路径)
library(RSelenium)
library(readxl)

# 启动Chrome浏览器驱动(端口可自定义)
driver <- rsDriver(browser = "chrome", port = 4567L)
remDr <- driver[["client"]]

# 打开目标页面
remDr$navigate("https://www.cmegroup.com/markets/interest-rates/cme-fedwatch-tool.html")

# 等待页面加载,切换到「Downloads」标签
Sys.sleep(3)
download_tab <- remDr$findElement(using = "css selector", value = "a[href='#downloads']")
download_tab$clickElement()

# 等待下载内容加载,找到并点击「All upcoming meetings」下载按钮
Sys.sleep(2)
download_btn <- remDr$findElement(using = "css selector", value = "a[data-title='All upcoming meetings']")
download_btn$clickElement()

# 等待下载完成,读取文件(替换为你的默认下载路径)
Sys.sleep(5)
# Windows用户示例路径:"C:/Users/你的用户名/Downloads/all_upcoming_meetings.xlsx"
download_path <- "~/Downloads/all_upcoming_meetings.xlsx"
fedwatch_data <- read_excel(download_path)
head(fedwatch_data)

# 关闭浏览器和驱动
remDr$close()
driver$server$stop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:45:05