我正在尝试学习如何使用PhantomJS来抓取网站内容。该库似乎非常有趣,并且该示例提供了非常自我解释。 我用BBC的例子从BBC网站上提取了一份食物清单。
现在我有兴趣从Skystore网站上获取电影列表,但我无法弄清楚如何做到这一点。
我已经包含了以下示例。基本上我总是包含evaluate函数,PhantomJS会生成大量错误,脚本会停止。我必须阻止该过程的唯一方法是按ctrl + c
关于它可能出错的任何想法?
var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
var fs = require('fs');
page.open('https://www.skystore.com/product/fifty-shades-of-grey/f37915c2-ed61-4c3b-bb97-f47b4bb34d40', function (status) {
console.log(status);
page.includeJs('https://www.skystore.com/assets/js/app-322d1ce3cd97ff8828ad1f552708921ab587a6df.js', function (status) {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.includeJs("https://www.skystore.com/assets/vendor/requirejs/require.js", function (status) {
page.includeJs("https://www.skystore.com/assets/vendor/angular/angular.min.js", function (status) {
console.log(status);
var test = page.evaluate(function(){
//page.evaluate();
return document;
});
console.log(test);
console.log(test.innerHTML);
console.log(test.documentElement.innerHTML);
// setInterval(function(){
console.log(page.content);
//page.evaluate();
//fs.write('home.html', page.content, 'w');
// }, 2000);
phantom.exit()
});
});
});
});
});