我参加了一场比赛,他们只展示您的成绩,但是我想看看我如何与其他人比较。我在其他比赛中也这样做过,通常结果会显示在一张表格中,但是这似乎有所不同。我不确定从哪里开始,也许有些人可以向我指出正确的方向,最好是使用R。
这是获胜运动员成绩的链接。我想得到: 名称,国家,BIB以及所有时间。
https://results.sporthive.com/events/6577137678160433152/races/465951/bib/10
我应该去哪里看?我以前使用过rvest,但是这里似乎并没有解决问题。似乎没有涉及到HTMLtable。
以下内容运行无错误,但返回一个空表:
tables <- GET("https://results.sporthive.com/events/6577137678160433152/races/465951/bib/10")
result <- readHTMLTable(rawToChar(tables$content))
在使用时,我看不到任何可以访问的节点(按照Simon的链接:
my_session <- html_session("https://results.sporthive.com/events/6577137678160433152/races/465952/bib/10")
更新:以下返回带有元素的列表,其中包含我想要的数据。
library(RSelenium)
# start the server and browser(you can use other browsers here)
rD <- rsDriver(browser=c("firefox"))
driver <- rD$client
driver$navigate("https://results.sporthive.com/events/6577137678160433152/races/465952/bib/2404")
elements <- driver$findElements(using = "css",".ng-binding")
# Use apply functions to extract elements:
texts_lapply <- lapply(elements,function(x) x$getElementText()[[1]])
答案 0 :(得分:1)
所有这些数据均来自API调用,您可以在按F5刷新页面时在浏览器网络标签中找到该API。您会收到json响应,可以解析任何内容
library(jsonlite)
data <- jsonlite::read_json('https://eventresults-api.sporthive.com/api/events/6577137678160433152/races/465951/bib/10')
print(data$fullClassification$athlete$name)
print(data$fullClassification$classification)