首页 > 解决方案 > RSelenium - 网页抓取 - Zepp - 个人足球数据

问题描述

我有一个足球应用程序,可以在我比赛时跟踪我的数据 - 但是我想要一种自动收集这些数据的方法。

这是我试图抓取的页面示例,尽管我似乎没有在使用 RSelenium 方面取得任何进展。

我能够进行初步联系,并获得页面的标题,但似乎无法抓住除此之外的任何东西。

library(RSelenium)
remDr <- remoteDriver(remoteServerAddr = "127.0.0.1",
                      port = 4445L)
remDr$open(silent = TRUE)

remDr$navigate("http://sport.zepp.com/soccer/game?id=602f7c549c05de4254619ce2&uid=602dfa34286a8427b94ef43d")
remDr$getTitle()

我至少希望能够在页面顶部附近跟踪 3.18m 的“距离”度量。有没有人能给我一个可行的例子来说明我如何做到这一点?最终,我也希望能够获得页面的其余部分。

标签: rwebscreen-scrapingrselenium

解决方案


下面是一个可能的解决方案。

library(RSelenium)
driver <- rsDriver(browser=c("firefox"), port = 4445L)
remote_driver <- driver[["client"]]

remote_driver$navigate("http://sport.zepp.com/soccer/game?id=602f7c549c05de4254619ce2&uid=602dfa34286a8427b94ef43d")
DISTANCE<-remote_driver$findElement(using = 'css selector', value = 'div.ct-container:nth-child(1) > div:nth-child(2) > div:nth-child(2)')$getElementText()
print(DISTANCE)
[[1]]
[1] "5125"

KICKS<-remote_driver$findElement(using = 'css selector', value = '#SoccerGameApp > div > div:nth-child(2) > div:nth-child(2) > div > div:nth-child(2) > div > div.flt_r.ct-h-r')$getElementText()
print(KICKS)
[[1]]
[1] "21"

SPRINTS<-remote_driver$findElement(using = 'css selector', value = '#SoccerGameApp > div > div:nth-child(2) > div:nth-child(2) > div > div:nth-child(3) > div > div.flt_r.ct-h-r')$getElementText()
print(SPRINTS)
[[1]]
[1] "17"

推荐阅读