r - 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 的“距离”度量。有没有人能给我一个可行的例子来说明我如何做到这一点?最终,我也希望能够获得页面的其余部分。
解决方案
下面是一个可能的解决方案。
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"
推荐阅读
- javascript - 如何使用 Discord.js 中的反应让用户回答问题?
- c# - 如何从 TextBlock 中删除字典资源引用?
- html - 关键帧动画由于某种原因不起作用
- c# - 任务卡在“[计划并等待运行]”中
- lua - 如果我在射击时(在连发和自动模式下)不装备枪,它会停止工作 -ROBLOX STUDIO
- pine-script - 访问变量的奥秘
- flutter - Flutter中没有连接时如何处理CachedNetworkImage的错误?
- angular - 如何使用 NS 7 和 Angular 10 解决 nativescript-google-maps-sdk 问题
- python - GitHub Actions 访问多个 tox 运行之间的 python 包工件
- installation - 如何使完成时的启动复选框在 InstallShield 6.0 中正常运行?