在R中搜索javascript网站

Lia*_*ynn 5 javascript screen-scraping r rvest

我想从这个网址中删除匹配时间和日期:

http://www.scoreboard.com/game/rosol-l-goffin-d-2014/8drhX07d/#game-summary

通过使用chrome dev工具,我可以看到这似乎是使用以下代码生成的:

<td colspan="3" id="utime" class="mstat-date">01:20 AM, October 29, 2014</td>
Run Code Online (Sandbox Code Playgroud)

但这不是源html.

我认为这是因为它的java(纠正我,如果我错了).如何使用R抓取此信息?

hrb*_*str 13

所以,RSelenium不是唯一的答案(不再).如果您可以安装PhantomJS二进制文件(从这里抓取phantomjs二进制文件:http://phantomjs.org/ ),那么您可以使用它来呈现HTML并将其rvest删除(类似于RSelenium方法,但不需要java):

library(rvest)

# render HTML from the site with phantomjs

url <- "http://www.scoreboard.com/game/rosol-l-goffin-d-2014/8drhX07d/#game-summary"

writeLines(sprintf("var page = require('webpage').create();
page.open('%s', function () {
    console.log(page.content); //page source
    phantom.exit();
});", url), con="scrape.js")

system("phantomjs scrape.js > scrape.html", intern = T)

# extract the content you need
pg <- html("scrape.html")
pg %>% html_nodes("#utime") %>% html_text()

## [1] "10:20 AM, October 28, 2014"
Run Code Online (Sandbox Code Playgroud)