return res; } /** * 遍历书本目次下的┞仿节列表 * @param {*} list */ const mapBookList = (list) => { return new Promise((resolve, reject) => { async.mapLimit(list, 1, (series, callback) => { let doc = series._doc; getCurBookSectionList(doc, callback); }, (err, result) => { if (err) { logger.error('书本目次抓取异步履行掉足!'); logger.error(err); reject(false); return; } resolve(true); }) }) } /** * 获取单本书本下章节列表 调用章节列表遍历进行抓取内容 * @param {*} series * @param {*} callback */ const getCurBookSectionList = async(series, callback) => { let num = Math.random() * 1000 + 1000; await sleep(num); let key = series.key; const res = await bookHelper.querySectionList(chapterListModel, { key: key }); if (!res) { logger.error('获取当前书本: ' + series.bookName + ' 章节内容掉败,进入下一部书本内容抓取!'); callback(null, null); return; } //断定当前数据是否已经存在 const bookItemModel = getModel(key); const contentLength = await bookHelper.getCollectionLength(bookItemModel, {});
推荐阅读
一种Python全局配置规范以及其魔改
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
一、模块 or global很多初学者有个误区,就是在Python中须要设备一个全局的参数时,起首想到的是global关键>>>详细阅读
本文标题:NodeJs爬虫抓取古代典籍,共计16000个页面心得体会总结及项目分享
地址:http://www.17bianji.com/lsqh/40135.html
1/2 1