使用CasperJS刮擦内容

时间:2014-03-14 17:47:19

标签: javascript web-scraping casperjs

我试图用CasperJS库刮取此页面上的电影链接(http://www.solarmovie.so/watch-pompeii-2014.html)。我密切关注教程(http://docs.casperjs.org/en/latest/quickstart.html#now-let-s-scrape-google)。

当我定位我想要的类(.sourceNameCell)的锚子标签时,只找到JSON对象,即使我以为我是通过使用" .sourceNameCell>提取锚值。一个"作为我的选择者。

我非常感谢你能为一个萌芽的Javascript-ist提供任何反馈!

请在下面找到我的代码......

var casper = require('casper').create();
var links = [];

function getLinks() {
    var links = document.querySelectorAll('.sourceNameCell > a');
    return Array.prototype.map.call(links, function(e) {
        return e;
    });
}
casper.start('http://www.solarmovie.so/watch-pompeii-2014.html', function() {
   this.evaluate(getLinks);
});


casper.then(function() {
    // aggregate results for the 'phantomjs' search
    links = links.concat(this.evaluate(getLinks));
});

casper.run(function() {
    // echo results in some pretty fashion
    this.echo(links.length + ' links found:');
    this.echo(' - ' + links.join('\n - ')).exit();
});

1 个答案:

答案 0 :(得分:0)

我是Javascript的新手,但教程显示"返回e.getAttribute(' href')"。 Chris尽可能使用xpath,但css在这里工作正常。

澄清我的答案:

替换:返回e; (第7行,如果计算正确)

with:return e.getAttribute(' href');