【问题标题】:How can I pull player stats from a tabbed ESPN table?如何从选项卡式 ESPN 表格中提取球员统计数据?
【发布时间】:2020-11-20 09:42:53
【问题描述】:

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

使用以下代码(借助两个可爱的包(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

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

提前致谢!

【问题讨论】:

    标签: r espn


    【解决方案1】:

    如果您检查源 html 页面,您会发现数据在开始时不存在。您可以找到一个data-reactid-标签,它表明只有在您单击新选项卡后才会加载数据。所以你需要找到一种方法来点击第二个标签。

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

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

    【讨论】:

    • 太好了,谢谢 - 让我看看,我会回复你(如果这能解决我的问题,请打勾!)
    • 您好,Thomas,抱歉耽搁了。不幸的是,我对 Selenium 运气不佳(端口错误等),但完全怀疑您的解决方案会奏效。我想知道 scrappy 和 XPath 作为替代方案 - 但这是一个完全不同的问题!
    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2020-07-30
    • 2021-08-15
    • 1970-01-01
    相关资源
    最近更新 更多