我使用PhantomJS从Facebook群组中获取一些数据。
我的流程很简单:
从日志中我看到网页高度增加但我得到的图像 - 始终相同。
以下是相关代码:
var index_screen = 0;
page.onConsoleMessage = function(msg) {
if (msg == "__screen__") {
console.log("print screen");
page.clipRect = { top: 0, left: 0, width: 1680, height: 1050 };
page.render(index_screen + "_test.png");
index_screen++;
}
...
evaluate(page, function() {
var scrollInterval = setInterval(function() {
console.log("__screen__");
console.log("screen hight: ", document.body.scrollHeight);
window.document.body.scrollTop = document.body.scrollHeight;
console.log("after screen: ", window.document.body.scrollTop);
}, 15000);
}); // end evaluate
我得到的输出:
page: screen hight: 4494
page: after screen: 4194
page: screen hight: 8397
page: after screen: 8097
page: screen hight: 12390
page: after screen: 12090
...
这意味着代码可以工作,我向下滚动,但所有图像都显示在页面顶部。
我错过了什么吗?
请帮忙,
谢谢,
答案 0 :(得分:1)
您的page.clipRect = { top: 0, left: 0, width: 1680, height: 1050 };
行说“始终向我提供页面的前1050像素”。
如果'h'是当前屏幕高度,并且最初是var prevHeight = 0
,则您希望这样做:
page.clipRect = { top: prevHeight, left: 0, width: 1680, height: h - prevHeight };
prevHeight = h;