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

如何用R爬取URL固定的NBA裁判分配历史日期表格?

爬取NBA裁判分配页面历史日期表格的R实现方案

这个页面的日期切换依赖JavaScript动态渲染内容,静态爬取工具(如直接用rvest发起GET请求)无法捕获JS加载的历史数据,以下提供两种可行方案:

方案一:用RSelenium模拟浏览器交互

通过模拟用户操作浏览器切换日期,获取动态加载的表格数据:

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

# 加载工具包
library(RSelenium)
library(rvest)
library(dplyr)

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

# 访问目标页面
remDr$navigate("https://official.nba.com/referee-assignments/")

# 等待页面初始化加载
Sys.sleep(3)

# 定位日期输入框并输入目标日期
date_input <- remDr$findElement(using = "css", value = "input[type='date']")
date_input$clearElement()
date_input$sendKeysToElement(list("2022-10-04"))

# 模拟回车提交日期切换
date_input$sendKeysToElement(list(key = "enter"))

# 等待表格加载完成
Sys.sleep(2)

# 提取页面源码并解析表格
page_source <- remDr$getPageSource()[[1]]
table_data <- read_html(page_source) %>% 
  html_element("table") %>% 
  html_table(fill = TRUE)

# 查看结果
print(table_data)

# 关闭浏览器会话
remDr$close()
driver$server$stop()

方案二:直接调用后台API(高效推荐)

通过抓包分析页面网络请求,发现历史数据来自后台API,可直接构造请求获取:

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

# 加载工具包
library(httr)
library(jsonlite)
library(dplyr)

# 定义需要爬取的日期列表
target_dates <- c("2022-10-04", "2022-10-05", "2022-10-06")

# 循环请求每个日期的数据
all_data <- lapply(target_dates, function(date) {
  # 发送API请求
  response <- GET(
    url = "https://official.nba.com/wp-json/nba-referee/v1/assignments",
    query = list(date = date)
  )
  
  # 解析返回的JSON数据
  json_data <- fromJSON(content(response, "text"))
  
  # 整理为数据框(若该日期无数据则返回空)
  if (!is.null(json_data$assignments)) {
    return(json_data$assignments %>% mutate(date = date))
  } else {
    warning(paste("无数据:", date))
    return(NULL)
  }
})

# 合并所有日期的数据
combined_data <- bind_rows(all_data)

# 查看结果
print(combined_data)

注意事项

  • 使用RSelenium时,需确保浏览器与驱动版本一致,避免启动失败;
  • API请求需注意频率,短时间内大量请求可能触发网站反爬限制;
  • 若API结构随网站更新变化,需重新抓包分析新的请求接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:46:47