使用R语言爬取Rotowire NBA投注存档表遇xml_nodeset(0)问题求助
解决Rotowire NBA投注存档表格爬取失败问题
问题原因
你使用的表格ID datatable1681315996838 是动态生成的,每次刷新页面这个ID都会随机变化,固定XPath定位自然找不到对应节点,因此返回{xml_nodeset (0)}。
解决方案
改用表格的静态特征(比如class属性)定位,目标表格带有datatable类,直接通过类选择器抓取即可:
rm(list=ls()) library(tidyverse) library(rvest) # 读取目标页面 url <- read_html("https://www.rotowire.com/betting/nba/archive.php") # 通过class定位表格(页面中第一个带datatable类的表格即为目标表) nba_betting_archive <- url %>% html_node(".datatable") %>% html_table(header = TRUE) # 查看爬取结果 head(nba_betting_archive)
补充说明
- 若页面存在多个带
datatable类的表格,可使用html_nodes(".datatable")获取所有表格,再通过索引选取目标表(例如[[2]]选取第二个)。 - 建议保持rvest包为最新版本,避免因版本兼容问题导致异常。
内容的提问来源于stack exchange,提问作者Lcsballer1
相关产品推荐
相关产品推荐

