用于网页抓取(爬虫)的节点js中的自动下一页循环?

时间:2017-05-01 22:22:00

标签: jquery node.js web-scraping automation web-crawler

我在crawler package中使用nodejs,我可以使用jquery获取下一页的链接,但我陷入了自动化困境。所以我想通过一次又一次地运行相同的脚本来自动化这个过程,这样我就可以抓住整个网站。

var Crawler = require('Crawler');
var c = new Crawler({
maxConnactions:10,
callback: function(err,rs,done){
    if (err) {throw err;}
    else{
        var $ = rs.$;
        var tag = $('span.next-button');
        tag.each(function(index,item){
            //targetting next page url
            var target = $(this).find('a').attr('href');
            //stored in db...
            db.push(target);
            console.log(target);
        })
    }
}

})

c.queue('https://www.reddit.com/r/fullmoviesongoogle/');

//so i want this link right here but its not possible beacouse of asysc code..
//and i also want to run this same function when i get this new link..

c.queue(db[0]);

所以基本上我想通过抓下一页链接来构建抓取整个网站的爬虫类...

提前感谢:)

1 个答案:

答案 0 :(得分:0)

您只需在回调函数中直接排队网址:

`
function parser(err,rs,done){
    if (err) {throw err;}
    else{
        var $ = rs.$;
        var tag = $('span.next-button');
        tag.each(function(index,item){
            //targetting next page url
            var target = $(this).find('a').attr('href');
            c.queue(target);
            console.log(target);
        })
    }
}
`

Crawler默认使用全局回调函数。