如何用R抓取fbref网页中的第二个表格「Player Standard Stats」?
解决方法
方法1:修改列表索引
你当前代码用.[[1]]获取了第一个表格,直接将索引改为.[[2]]即可抓取第二个表格:
url <- "https://fbref.com/en/comps/9/stats/Premier-League-Stats#stats_standard" xG_ind <- url %>% xml2::read_html() %>% rvest::html_nodes('table') %>% html_table() %>% .[[2]]
方法2:通过表格ID精准定位(更可靠)
FBref的每个核心数据表格都有唯一ID,「Player Standard Stats」对应的ID是stats_standard。直接用ID定位可以避免页面结构变动(比如新增隐藏表格)导致索引失效的问题:
url <- "https://fbref.com/en/comps/9/stats/Premier-League-Stats#stats_standard" xG_ind <- url %>% xml2::read_html() %>% rvest::html_nodes('table#stats_standard') %>% # 用ID精准匹配目标表格 html_table() %>% .[[1]] # 仅匹配到一个表格,因此取第一个元素
补充提示
- 若不确定表格ID,可在浏览器中右键点击目标表格,选择「检查」查看其
id属性值。 - 用ID定位的代码稳定性更强,不会因页面新增其他小表格而影响抓取结果。
内容的提问来源于stack exchange,提问作者BulletTooth
相关产品推荐
相关产品推荐

