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

如何用R的rvest包抓取SEB网站的EUR互换利率表格?

解决SEB网站EUR互换利率爬取无结果的问题

你的问题核心在于目标页面的表格是通过JavaScript动态渲染的,xml2::read_html()只能抓取页面的静态HTML源码,无法获取JS加载后生成的内容,所以才会返回空节点集。以下是两种可行的解决思路:

方法1:使用浏览器模拟工具(RSelenium)

通过模拟真实浏览器的加载过程,让页面完全渲染后再抓取内容,示例代码如下:

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

library(RSelenium)
library(rvest)

# 启动Chrome驱动(需确保本地安装Chrome,且驱动版本与浏览器匹配)
driver <- rsDriver(browser = "chrome", port = 4567L)
remDr <- driver[["client"]]

# 访问目标页面
remDr$navigate("https://sebgroup.com/our-offering/prospectuses-and-downloads/rates/swap-rates/")

# 等待页面加载完成(可根据网络情况调整等待时长)
Sys.sleep(5)

# 获取渲染后的页面源码
page_html <- read_html(remDr$getPageSource()[[1]])

# 抓取EUR互换利率表格
eur_table <- page_html %>% 
  html_nodes(xpath="//table[@class='table text-nowrap w-100 mb-6']") %>% 
  html_table(header = TRUE) %>% 
  .[[1]]

# 清理资源
remDr$close()
driver$server$stop()

# 查看结果
print(eur_table)

方法2:直接抓取数据接口(更高效)

打开浏览器开发者工具(F12),切换到「Network」标签页,刷新页面后筛选「XHR/Fetch」类型的请求,查找返回利率数据的API接口。这类接口通常会返回JSON格式的数据,直接用httr或jsonlite包请求即可,无需模拟浏览器,效率更高。

额外提示

  • 爬取前检查网站的robots.txt文件,确保爬取行为符合网站规则。
  • 模拟浏览器时避免短时间内频繁请求,防止IP被网站封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:55:02