使用rvest爬取NRL积分榜表格时遇JSON解析错误求排查
爬取NRL积分榜时JSON解析错误的问题分析及解决
问题根源:你选中的
div.l-content.pre-quench元素的q-data属性值为NA,并非有效的JSON字符串,因此jsonlite::fromJSON()无法解析,抛出语法错误。这是因为该页面的积分榜数据为动态加载,初始HTML中这个属性并未填充有效JSON数据,或者该元素本身就不包含目标数据。解决思路1:直接提取页面渲染的表格
跳过无效的动态属性,直接定位页面中实际显示的积分榜表格,用html_table()提取数据:library(rvest) page <- read_html("https://www.nrl.com/ladder/?competition=111&round=27&season=2024") # 定位积分榜表格并转换为数据框 ladder_table <- page %>% html_nodes("table.ladder-table") %>% html_table(fill = TRUE) %>% .[[1]] # 查看前几行数据 head(ladder_table)解决思路2:抓取动态数据接口
如果直接提取表格失败,说明数据完全通过AJAX加载。可以通过浏览器开发者工具的「网络」面板,筛选XHR请求,找到返回积分榜JSON数据的接口,直接请求该接口获取数据,这种方式比解析HTML更稳定。
内容的提问来源于stack exchange,提问作者HowGoodisData
相关产品推荐
相关产品推荐

