虽然是 js 代码,但是还是求助万能的 ruby-china.
需求是这样的:“抓取某个网站的数据,因为我不知道它具体分多少页,所以我只能在抓取的时候判断是否是最后一页”
while(flag){
download(url, function(data) {
if(data){
var $ = cheerio.load(data);
if($(".noresult").length==1){
console.log('空');
flag=false;
}
}
});
}
但是因为 node 的异步原因,这样是没法实现的,能有什么好的办法吗?
============================================================================================ 昨天一下午写不出来,今天早上居然 5 分钟内写出来了,思路是如此的清晰。拿出来,求拍砖,求改进。
var flag =true;
while(flag){
page++;
flag= (function(flag){
return flag;
})(download(url+page, function(data) {
if(data){
var $ = cheerio.load(data);
if($(".noresult").length==1){
console.log('空');
return false;
}
//保存抓取的信息
return true;
}
}));
}