1

我正在尝试抓取类似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。我要做什么改变。有什么帮助吗?

4

0 回答 0