在工作中,我想解析一些网页。不幸的是,我无法在我的示例中添加任何真实页面,因为工作中的网址是有信心的。我只能尝试解释问题所在。
要解析我在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或解析。在此先感谢帮助我。