0

我一直在阅读其他一些关于使用 R 从 ESPN 提取球员和比赛数据的有用指南,但是我遇到了选项卡表的问题。如这里最近一场橄榄球比赛的球员统计数据所示,球员统计数据表分为“得分”、“进攻”、“防守”和“纪律”。

使用以下代码(借助两个可爱的包(RCurl 和 htmltab),我可以从该页面中拉出第一个选项卡('Scoring')......

# install & attach RCurl
if (!base::require(package="RCurl")) utils::install.packages("RCurl")
library(RCurl)
# install & attach htmltab
if (!base::require(package="htmltab")) utils::install.packages("htmltab")
library(htmltab)

# assign URL
theurl <- RCurl::getURL("https://www.espn.co.uk/rugby/playerstats?gameId=294854&league=270557",.opts = list(ssl.verifypeer = FALSE))
# pull tables from url
team1 <- htmltab::htmltab(theurl,which=1)
team2 <- htmltab::htmltab(theurl,which=2)
league <- htmltab::htmltab(theurl,which=3)

...采用以下格式,这正是我想要的...

    
team1

rowID LEINS Tx TA CG PG PTS
2   J LarmourFB 0   0   0   0   0   0
3   H KeenanW   0   0   0   0   0   0
4   G RingroseC 0   0   0   0   0   0
5   R HenshawC  1   0   0   0   0   5
6   J LoweW 1   0   0   0   0   5
7   R ByrneFH   0   0   2   2   0   10
8   J Gibson-ParkSH 0   1   0   0   0   0
9   C HealyP    0   0   0   0   0   0
10  R KelleherH 0   0   0   0   0   0
11  A PorterP   0   0   0   0   0   0

...但是我似乎无法拉出除“评分”以外的任何选项卡。我确定我错过了一些非常明显的东西,所以希望有人指出我哪里出错了!

提前致谢!

4

1 回答 1

2

如果您检查源 html 页面,您将看到数据在开始时不存在。您可以找到一个data-reactid-tag,表明只有在单击新选项卡后才会加载数据。因此,您需要找到一种方法来单击第二个选项卡。

您可能会选择使用 Selenium:https ://www.rdocumentation.org/packages/RSelenium/versions/1.7.7 这将使您能够单击必要的按钮。

可以在此处找到示例:https ://www.r-bloggers.com/2014/12/scraping-with-selenium/

于 2020-11-20T09:58:19.377 回答