R爬虫:Keeptradecut球员页All-time dynasty value数据源查询
爬取KTC球员页All-time Dynasty Value数据的来源分析及解决方法
针对你遇到的球员页没有等效history XHR请求的问题,这类数据通常来自以下几个渠道,对应的R爬取方法如下:
页面内嵌的JSON数据
很多现代网站会将动态数据直接嵌入页面的<script>标签中(比如以window.__DATA__或类似变量存储),而非单独发起XHR请求。你可以:- 用
rvest抓取页面HTML - 筛选包含球员历史数据的
<script>标签(关键词可搜playerHistory、dynastyValue) - 提取标签内的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
相关产品推荐
相关产品推荐

