2016-12-16 31 views
1

幫幫我,如何去數組的URL?問題是URL的列表從其他頁面(casper)開始,並且最初是未知的。例如:從陣列的Casper.js鏈接

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

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

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

    }); 

}); 

回答

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();