Javascript 为什么page.render在PhantomsJS中只从页面顶部获取图像?

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 = {

我使用PhantomJS从Facebook群组获取一些数据

我有非常简单的流程:

  • 打开页面
  • 印刷屏幕
  • 向下滚动
  • 转至步骤2
  • 从日志中我看到网页高度增加了,但我得到的图像却一直是一样的

    以下是相关代码:

    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;
    

    谢谢,我就知道这很简单