1.想用node和cheerio在网络中抓取数据,然后在另一个模块中使用,但是因为是异步获取数据,当前的同步代码都已经执行完毕,获取到的变量或者return都为空,exports也无法导出,除了在处理函数中临时使用或者存储以外,有什么办法能持续使用,或者导出到另一个模块,return.
2.`function getTitle(url,i){
console.log('正在获取第'+i+'页的内容');
http.get(url+i+'.html',res=>{
var chunks = [];
res.on('data',function(chunk){
chunks.push(chunk);
});
res.on('end',function(){
var html = iconv.decode(Buffer.concat(chunks),'gb2312');
var $ = cheerio.load(html,{decodeEntities:false});
var asyRes = $('.co_content8 .ulink');
$('.co_content8 .ulink').each(function(index,ele){
var dom = $(ele);
titles.push({
title:dom.text()
})
});
if (i<2) {
getTitle(url,++index);
//获取多页数据
}else {
// if (titles) {
// save(titles);
// }
//读取完毕后,在这里就卡住了..不知道如何把titles弄出来
}
})
});
}`
米脂
FFIVE
相关分类