如何关注CasperJS中的所有链接?

use*_*226 5 javascript web-crawler hyperlink phantomjs casperjs

我在点击DOM中所有基于JavaScript的链接并保存输出时遇到问题.链接有表格

<a id="html" href="javascript:void(0);" onclick="goToHtml();">HTML</a>
Run Code Online (Sandbox Code Playgroud)

以下代码效果很好:

var casper = require('casper').create();

var fs = require('fs');

var firstUrl = 'http://www.testurl.com/test.html';

var css_selector = '#jan_html';

casper.start(firstUrl);

casper.thenClick(css_selector, function(){
    console.log("whoop");
});

casper.waitFor(function check() {
    return this.getCurrentUrl() != firstUrl;
}, function then() {
    console.log(this.getCurrentUrl());
    var file_title = this.getTitle().split(' ').join('_') + '.html';
    fs.write(file_title, this.getPageContent());
});

casper.run();
Run Code Online (Sandbox Code Playgroud)

但是,如何使用"a"选择器,单击所有可用链接并保存内容?我不知道如何让clickWhileSelector从选择器中删除节点,如下所示:单击与选择器匹配的所有链接

rus*_*sln 14

我有这个脚本,首先从页面获取所有链接,然后将'href'属性保存到数组,然后迭代这个数组,然后逐个打开每个链接并回显url:

var casper = require('casper').create({
    logLevel:"verbose",
    debug:true
});
var links;

casper.start('http://localhost:8000');

casper.then(function getLinks(){
     links = this.evaluate(function(){
        var links = document.getElementsByTagName('a');
        links = Array.prototype.map.call(links,function(link){
            return link.getAttribute('href');
        });
        return links;
    });
});
casper.then(function(){
    this.each(links,function(self,link){
        self.thenOpen(link,function(a){
            this.echo(this.getCurrentUrl());
        });
    });
});
casper.run(function(){
    this.exit();
});
Run Code Online (Sandbox Code Playgroud)