我正在尝试抓取像 Quora question log 这样的quora日志页面,以到达页面底部并获取添加问题的人的姓名。我正在使用此代码进行phantomjs
var page = require('webpage').create();
var fs = require('fs');
var output = './temp_htmls/test1.html';
page.open('url', function() {
fs.write(output,page.content,'w');
phantom.exit();
});
但这只会抓取一个网页,直到结束才能获取完整的网页。 有人可以用phantomjs指出我所缺少的能够使这项工作
修改 我尝试按照评论Link in comment中的链接中提到的不同方式工作,并提出了此代码
var system = require('system');
var fs = require('fs');
var output = './temp_htmls/test1.html';
var webpage = require('webpage').create();
webpage.viewportSize = { width: 1280, height: 800 };
webpage.scrollPosition = { top: 0, left: 0 };
var userid = system.args[1];
var profileUrl = "http://www.twitter.com/barackobama";
webpage.open(profileUrl, function(status) {
if (status === 'fail') {
console.error('webpage did not open successfully');
phantom.exit(1);
}
var i = 0,
top,
queryFn = function() {
return document.body.scrollHeight;
};
setInterval(function() {
top = webpage.evaluate(queryFn);
i++;
console.log("1:");
webpage.scrollPosition = { top: top + 1, left: 0 };
console.log("top = " + top);//increments properly for twitter
fs.write(output,webpage.content,'w');
if (i >= 10) {
phantom.exit();
}
}, 3000);
});
这适用于Twitter无限卷轴和twitter的top.log值很好。但是对于Quora日志链接(在原始问题中),它不会增加。所以滚动似乎不适用于Quora。我做了什么改变。有什么帮助吗?