您可以使用RSelenuim 执行以下操作:
require(RSelenium)
RSelenium::startServer()
remDr <- remoteDriver()
remDr$open()
remDr$navigate("http://stats.statbroadcast.com/statmonitr/?id=107165")
现在应该会打开一个 Firefox 窗口,您可以在其中像平常一样浏览。
doc <- remDr$getPageSource() 为您提供当前网页的源代码。您可以使用rvest 来抓取此代码,如下所示:
doc <- remDr$getPageSource()[[1]]
require(rvest)
current_doc <- read_html(doc)
如果你想自动化“浏览”,你可以例如。导航到“Play by Play”页面,如下所示:
webElem <- remDr$findElement(using = "css selector", '#bb_b6')
remDr$mouseMoveToLocation(webElement = webElem)
remDr$click(1)
最后:关闭远程驱动并关闭 selenium-server
#shutdown
remDr$close()
browseURL("http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer")
更多详情见:
https://cran.r-project.org/web/packages/RSelenium/vignettes/RSelenium-basics.html
编辑:
current_doc 在您执行 doc <- remDr$getPageSource()[[1]] 时捕获网站原样。这不是实时的。这是一张1次的照片。
如果要抓取“期间 I”,请执行以下操作:
第一次导航到“Play by Play”(如上所示)-Sys.sleep(3) 直到网站加载完毕-然后导航到“Period I”,就像使用另一个 css-selector 导航到“Play by Play”一样。
如果您到达“Period I”网页,请查看您的远程驱动程序(也就是您控制的浏览器窗口)。
到达后执行doc <- remDr$getPageSource()[[1]] 并分析内容。