问题描述
var a = 1;
var urlList = [];
var imagesList = [];
var url = 'https://www.freepik.com/';
const tasks = new Listr([
{
title: 'Preparation',task: () => {
urlList.push(url);
const page = cheerio.load(url);
}
},{
title: 'Extracting all Image links',task: () => {
request(url,(error,response,html) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$('body').find('img').each(function (index,element) {
a++;
imagesList.push($(element).attr('src'));
console.log('<<'+$(element).attr('src')+'>>' + a);
});
}
});
console.log('Image search over');
}
},{
title: 'Extracting all URLs',html) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$('body').find('a').each(function (index,element) {
console.log('||'+$(element).attr('href')+'||');
urlList.push($(element).attr('href'));
});
}
});
}
},{
title: 'Checking',task: () => {
console.log(urlList);
console.log('-----------------------------');
console.log(imagesList);
}
}
]);
当我运行此代码并尝试打印我声明的两个列表时,它们没有要推送的值,但是在一段时间后console.log()打印了所有值。
我希望列表(imageList和urlList)具有找到的所有值,以便我可以进一步使用它们。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)