在R中解析javascript生成的页面

时间:2015-11-27 13:01:19

标签: javascript r phantomjs

在工作中,我想解析一些网页。不幸的是,我无法在我的示例中添加任何真实页面,因为工作中的网址是有信心的。我只能尝试解释问题所在。

要解析我在R中编写了以下脚本。作为模拟URL,我使用了www.imdb.com。:

library(rvest)
library(plyr)

# urls

url <- "http://www.imdb.com/"

# parse

html <- try(read_html(url))

# select

select_meta <- function(html) {
  html %>%
    html_nodes(xpath = "//div") %>%
    html_attrs # function to select meta
}

meta <- select_meta(html)

问题是这个脚本没有为我在工作中使用的页面返回任何内容。我想这是因为脚本是由javascript生成的。我发现this tutorial解释了如何在R中抓取javascript生成的页面。

用于在教程中生成页面的代码如下:

// scrape_techstars.js

var webPage = require('webpage');
var page = webPage.create();

var fs = require('fs');
var path = 'techstars.html'

page.open('http://www.techstars.com/companies/stats/', function (status) {
  var content = page.content;
  fs.write(path,content,'w')
  phantom.exit();
});

我没有任何Javascript知识,因此我无法将page.open(仅适用于1页)扩展到多个页面(在工作中我必须解析大约100页)。因此,我不是依赖幻像,而是选择完全基于R的解决方案(如果这对于真正的编码人员来说是完全低效和冒犯的话,我会事先道歉)。所以我的问题的关键是:&#34;如何在R 生成多个页面?&#34;。

这是一次性的事情,所以我并没有真正考虑阅读Javascript或解析。在此先感谢帮助我。

0 个答案:

没有答案