刮动动态页面内容phantomjs

时间:2012-12-10 16:40:53

标签: javascript html web-scraping phantomjs

我的公司正在使用一个托管我们所有常见问题解答和客户问题的网站。我们计划通过并消除所有旧数据并输入新数据,并且该服务没有备份或存档选项,我们不想再出现这些问题。

我已经完成并尝试使用perl和mechanize来浏览网站,但是我在页面上缺少客户评论,因为它们是通过ajax加载的。我已经查看了phantomjs并且可以使用示例页面将页面保存到图像中,但是,我想获得页面的整页html转储,但无法弄清楚如何。我在我们的网站上使用了这个示例代码

var page = new WebPage();

page.open('http://espn.go.com/nfl/', function (status) {
//once page loaded, include jQuery from cdn
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
//once jQuery loaded, run some code
//inserts our custom text into the page
page.evaluate(function(){$("h2").html('Many NFL Players Scared that Chad Moon Will Enter League');});
//take screenshot and exit
page.render('espn.png');
phantom.exit();

});

});

有没有办法使用phantomjs我可以获得数据的整页转储,类似于我在chrome中查看了一个视图源?我可以用perl + mechanize做到这一点,但是看不到如何使用phantomjs这样做。

2 个答案:

答案 0 :(得分:5)

您可以使用page.content获取完整的HTML DOM

答案 1 :(得分:3)

如果你想使用PhantomJS,我会推荐pjscrape http://nrabinowitz.github.com/pjscrape/