gpt4 book ai didi

javascript - 如何在 R 中抓取实时 Java 脚本网页?

转载 作者:行者123 更新时间:2023-12-02 15:06:56 25 4
gpt4 key购买 nike

我想从 http://stats.statbroadcast.com/statmonitr/?id=107165 逐个抓取剧情。该链接将带您进入“拆分框”选项卡。我有兴趣抓取逐个比赛选项卡以及主场统计数据和访客统计数据选项卡。问题之一是,无论您切换到哪个选项卡,网址都不会改变。如果您使用选择器小工具,则所有选项卡主要内容的 css 选择器也相同,即“#stats”。我是网络抓取方面的新手,大多数时候我可以使用 rvest 包成功抓取 html 页面,但不幸的是我不知道如何继续使用 javascript。我听说过 JSON,但我不确定如何解决所有选项卡具有相同 url 的问题。

我的主要目标是能够在比赛进行时抓取逐场比赛、主场统计数据和访客统计数据选项卡。

任何帮助将不胜感激。如果我应该提供更多信息,请告诉我。

最佳答案

您可以使用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次图片。

如果您想抓取“Period I”,请执行以下操作:第一次导航到“Play by Play”(如上所示)- Sys.sleep(3)直到网站加载完毕 - 然后导航到“Period I”,就像使用另一个 css 选择器导航到“Play by Play”一样。

如果您到达“Period I”网页,请查看您的远程驱动程序(也称为您控制的浏览器窗口)。

到达后执行doc <- remDr$getPageSource()[[1]]并分析内容。

关于javascript - 如何在 R 中抓取实时 Java 脚本网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35059060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com