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

R爬虫:Keeptradecut球员页All-time dynasty value数据源查询

爬取KTC球员页All-time Dynasty Value数据的来源分析及解决方法

针对你遇到的球员页没有等效history XHR请求的问题,这类数据通常来自以下几个渠道,对应的R爬取方法如下:

  • 页面内嵌的JSON数据
    很多现代网站会将动态数据直接嵌入页面的<script>标签中(比如以window.__DATA__或类似变量存储),而非单独发起XHR请求。你可以:

    1. 用rvest抓取页面HTML
    2. 筛选包含球员历史数据的<script>标签(关键词可搜playerHistory、dynastyValue)
    3. 提取标签内的JSON字符串,用jsonlite解析后获取All-time数据

    示例代码:

    library(rvest)
    library(jsonlite)
    library(stringr)
    
    url <- "https://keeptradecut.com/dynasty-rankings/players/patrick-mahomes-272"
    page <- read_html(url)
    
    # 定位包含历史数据的script标签
    target_script <- html_elements(page, "script") |>
      sapply(html_text) |>
      str_subset("playerHistory") |>
      first()
    
    # 提取并解析JSON
    json_content <- str_extract(target_script, "\\{.*\\}")
    player_data <- fromJSON(json_content)
    
    # 提取All-time dynasty value(路径需根据实际数据结构调整)
    all_time_data <- player_data$playerHistory$dynastyValues
    head(all_time_data)
    
  • 隐藏的API请求
    检查Network面板的Fetch/XHR分类,刷新页面后搜索包含球员ID(比如272)的请求,可能命名为player-history、dynasty-history或通过GraphQL接口返回。找到后,直接用httr2模拟浏览器请求(需带上User-Agent等请求头避免被拦截),即可获取结构化数据。

  • DOM元素的属性存储
    如果All-time数据渲染为折线图,数据可能存储在图表容器的data-*属性中(比如data-values)。用rvest的html_attr()提取该属性值,再解析为数值序列即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:22:27