使用phantomjs

时间:2015-10-15 11:06:45

标签: javascript html phantomjs infinite-scroll quora

我正在尝试抓取像 Quora question log 这样的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指出我所缺少的能够使这项工作

修改 我尝试按照评论Link in comment中的链接中提到的不同方式工作,并提出了此代码

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.log值很好。但是对于Quora日志链接(在原始问题中),它不会增加。所以滚动似乎不适用于Quora。我做了什么改变。有什么帮助吗?

0 个答案:

没有答案