【发布时间】:2020-09-20 04:16:29
【问题描述】:
我正在尝试使用 rvest 从 fbref.com 上的不同页面抓取数据表。我已经能够使用以下方法从一页中抓取数据:
library(rvest)
URL <- "https://fbref.com/en/squads/822bd0ba/Liverpool"
WS <- read_html(URL)
passStats <- WS %>% rvest::html_nodes(xpath = '//*[(@id = "ks_sched_all")]') %>% rvest::html_table() %>% data.frame()
但是当我尝试使用 for 循环将其应用于多个页面时,我遇到了一个问题,因为并非所有页面都对表使用相同的 id。有些是“ks_sched_all”,有些是“ks_sched_(4 位数字)”。有什么方法可以提取页面上任何一个 id 以“ks_sched_”开头的表?
【问题讨论】:
-
必须考虑在您的 xpath 中使用 starts-with 吗?
-
谢谢,我尝试过使用
xpath = "//*[starts-with(@id, 'ks_sched_')]",但它不会将其作为表格刮掉,并给出html_name(x) == "table" is not TRUE的错误。知道为什么会这样吗?
标签: r xpath web-scraping rvest