我正在尝试抓取类似Quora 问题日志的 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 中缺少的东西以便能够完成这项工作
编辑 我尝试以不同的方式工作,如评论中的链接中提到的评论中的链接并想出了这段代码
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 的 console.log 值很好。但是对于 Quora 日志链接(在原始问题中),它不会增加。所以滚动似乎不适用于 Quora。我要做什么改变。有什么帮助吗?