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

使用rvest抓取JavaScript表格无数据,远程服务器可行方案咨询

解决方案

这个网站的表格数据是通过JavaScript异步加载的,read_html()只能抓取页面初始的静态HTML,所以无法获取表格主体内容。你可以直接请求网站的API接口拿到原始数据,无需依赖JS渲染工具,完全适配远程服务器环境。

具体步骤:

  1. 定位API端点:
    打开浏览器开发者工具(F12),切换到「网络」标签页,刷新页面后筛选「XHR」类型请求,找到返回自由球员数据的API(例如/api/free-agency),该接口通常会接受年份参数(如year=2024)。

  2. 用R请求API并解析数据:
    使用httr发送请求,jsonlite解析返回的JSON数据,最终转换为DataFrame:

    library(httr)
    library(jsonlite)
    library(tidyverse)
    
    # 发送API请求,添加User-Agent避免被拦截
    response <- GET(
      url = "https://overthecap.com/api/free-agency",
      query = list(year = 2024),
      add_headers(
        "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
      )
    )
    
    # 解析JSON数据
    fa_data <- fromJSON(content(response, "text"))
    
    # 转换为DataFrame(数据通常嵌套在data字段下,根据实际返回结构调整)
    fa_table <- as_tibble(fa_data$data)
    

说明:

  • API返回的是结构化JSON数据,比解析HTML表格更稳定,且无需处理JS渲染问题。
  • 若API参数或结构有变化,可再次通过浏览器开发者工具确认最新请求地址和参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:45:33