Casper.js从数组链接

时间:2016-12-16 14:08:47

标签: node.js phantomjs casperjs

帮助我,如何转到数组的URL?问题是URL列表从另一个页面(casper)开始,并且最初是未知的。例如:

casper.thenEvaluate(function() {
    var links = new Array;

    $('.ValueBets > li').each(function() {

           links.push($(this).find('.MDxMatchLink').attr('href')); 

    }); 

 }); 

1 个答案:

答案 0 :(得分:0)

我猜(没有证明)其中一个问题是你在评估中定义你的数组,无论如何我可以为你解决这个问题(getAllHref):

var casper = require('casper').create();
var url = "yourTargetUrl";
var links;

function getAllHref() {
    var hrefs = casper.evaluate(function() {
        return Array.prototype.map.call(document.querySelectorAll('a'), function(e) {
            return e.getAttribute('href');
        });
    });
    return hrefs;
}
casper.start(url);
casper.then(function() {
    // statements
    links = getAllHref();
});
casper.then(function() {
    // show all links at once
    casper.echo(JSON.stringify(links));

    // show single hrefs
    while (links.length > 0) {
        link = links.pop();
        (function(link) {
            casper.then(function() {
                casper.echo('link: ' + link);
            });
        })(link);
    }
});
casper.run();