Javascript 为什么page.render在PhantomsJS中只从页面顶部获取图像?
我使用PhantomJS从Facebook群组获取一些数据 我有非常简单的流程:Javascript 为什么page.render在PhantomsJS中只从页面顶部获取图像?,javascript,phantomjs,Javascript,Phantomjs,我使用PhantomJS从Facebook群组获取一些数据 我有非常简单的流程: 打开页面 印刷屏幕 向下滚动 转至步骤2 从日志中我看到网页高度增加了,但我得到的图像却一直是一样的 以下是相关代码: var index_screen = 0; page.onConsoleMessage = function(msg) { if (msg == "__screen__") { console.log("print screen"); page.clipRect = {
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
...
这意味着代码可以工作,我可以向下滚动,但所有的图片都会显示页面的顶部
我错过什么了吗
请帮忙
谢谢,你的
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;
谢谢,我就知道这很简单