R使用rvest抓取网页表格报html_table作用于xml_missing类错误问询
报错根因
这个报错是html_node('table#schedule')没有匹配到任何符合条件的节点,返回了xml_missing类型的空对象,后续调用html_table时就会抛出不适用方法的错误。
现有代码的问题
- 选择器ID使用错误:该站点2020赛季男子大学篮球的院校赛程表ID不是
schedule,实际ID为schedule-men,用错选择器自然无法定位到目标表格 - 注释提取范围过大:直接提取页面所有注释拼接后再解析,效率低且容易混入无关注释内容,增加节点匹配失败的概率
修正后可运行代码
library(rvest) url <- 'https://www.sports-reference.com/cbb/schools/bethune-cookman/2020-schedule.html' schedule <- url %>% read_html() %>% # 仅定位包裹赛程表的注释节点,缩小提取范围 html_nodes(xpath = '//div[@id="all_schedule-men"]//comment()') %>% html_text() %>% read_html() %>% # 使用正确的表格ID定位目标节点 html_node('table#schedule-men') %>% html_table()
运行上述代码即可正常提取到对应赛季的完整赛程数据,包含比赛日期、对阵对手、胜负结果、具体比分等全部字段。
内容的提问来源于stack exchange,提问作者Quinn Schroeder
相关产品推荐
相关产品推荐

