我在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]);
所以基本上我想通过抓下一页链接来构建抓取整个网站的爬虫类...
提前感谢:)
答案 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默认使用全局回调函数。