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

RStudio中使用XPath访问特定分类时返回全量赛事名称问题

问题原因

代码里的XPath写法存在范围错误:当你已经选中足球分类对应的<li class='sport code_sport-1'>节点后,后续html_nodes()传入的XPath是//span[@class='titulo'],开头的*//*语法代表从整个HTML文档根节点全局匹配所有符合规则的节点,不会把查找范围限定在之前选中的足球分类节点内,所以最终会返回全站所有赛事的标题,而不是仅足球分类下的比赛名称。

修正方法

将匹配span节点的XPath开头改为*.//*,这个写法代表从当前已选中的节点(即足球分类对应的li节点)向下递归查找匹配元素,就能把查找范围严格限定在足球分类下。

修正后可正常运行的代码:

library(rvest)
library(tidyverse)
library(xml2)

html="https://www.supermatch.com.uy/live_recargar_menu/"

a <- rvest::read_html(html)

b2 <- a %>% 
  html_node("body") %>% 
  html_node(xpath="//li[@class='sport code_sport-1']") %>% 
  html_nodes(xpath=".//span[@class='titulo']") %>% 
  html_text()
额外提示

所有需要在已选中节点范围内做XPath查找的场景,都要在路径前加.表示相对当前节点查找,不加.的//默认是全局查找,很容易出现匹配范围超出预期的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:36:27