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

使用R语言rvest包爬取npb.jp网站表格失败求助

解决rvest爬取npb.jp棒球数据表格失败的问题

你的问题出在CSS选择器的定位逻辑上,原始HTML结构和你写的选择器不匹配,尤其是tbody节点——浏览器会自动给表格补全tbody,但rvest读取的是服务器返回的原始HTML,里面可能没有这个节点,导致选择器失效。另外你原来的选择器只指向了第一个div下的内容,没覆盖到第二张表格。

修正方案:

直接定位目标容器下的所有表格节点,跳过冗余层级:

library(rvest)

# 读取目标网页
html <- read_html("https://npb.jp/bis/eng/2022/stats/std_c.html")

# 定位#stdivmaintbl容器内的所有表格,这就是你要的两张联赛数据表格
table_nodes <- html_nodes(html, "#stdivmaintbl table")

# 提取第一张表格(中央联盟数据)
central_league_df <- as.data.frame(html_table(table_nodes[[1]], header = TRUE, fill = TRUE))

# 提取第二张表格(太平洋联盟数据)
pacific_league_df <- as.data.frame(html_table(table_nodes[[2]], header = TRUE, fill = TRUE))

# 验证结果
head(central_league_df)
head(pacific_league_df)

关键说明:

  • 去掉了冗余的tbody层级,直接用#stdivmaintbl table定位,避免原始HTML和浏览器渲染结构的差异影响选择器
  • 一次获取两个表格节点,分别提取就能拿到两张联赛的完整数据
  • fill = TRUE参数用来处理表格内单元格合并的情况,避免解析出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:52:42