摘要:更新于利用重构了下此项目,有兴趣的可以参考看看,传送门首先感谢作者的分享,很赞,原文地址这里记录下编码遇到的问题,这里只针对进行了验证。
更新于 2019-01-02
利用 eggjs 重构了下此项目,有兴趣的可以参考看看,传送门
首先感谢作者的分享,很赞~,原文地址
这里记录下编码遇到的问题,这里只针对 sever 进行了验证。有同样遇到问题的童鞋,可以作为参照~
本地环境:
Node: v10.13.0
OS: window 7
npm: 6.4.1
问题一(mongoose相关)
问题描述:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
解决方案:
</>复制代码
mongoose.connect(config.dbUri, {
useCreateIndex: true,
useNewUrlParser: true
})
或者
mongoose.set("useCreateIndex", true)
mongoose.connect(config.dbUri, { useNewUrlParser: true })
对应的源码文件 kendou-book/book-server/server/database/init.js,涉及修改的代码如下:
</>复制代码
...
+ var opts = {
+ useCreateIndex: true,
+ useNewUrlParser: true
+ };
- mongoose.connect(db);
+ mongoose.connect(db, opts);
问题描述:DeprecationWarning: collection.count is deprecated
解决方案:
</>复制代码
底层的mongodb驱动程序已弃用.count()方法。您应该使用.estimatedDocumentCount()或.countDocuments()代替。
对应的源码文件 kendou-book/book-server/server/tasks/runninng.js,涉及修改的代码如下:
</>复制代码
...
// 激活爬数据 为下一次服务
await taskBook(item.bookId)
let count = await Chapter.find({
bookId: item.bookId
- }).count()
+ }).countDocuments()
问题二(puppetter 相关)
问题描述:ERROR: Failed to download Chromium r588429! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
解决方案:
</>复制代码
vi .npmrc
type puppeteer_download_host = https://npm.taobao.org/mirrors
yarn add puppeteer -D or npm i puppeteer --save-dev
问题描述:(node:19996) UnhandledPromiseRejectionWarning: TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded
解决方案:
对应的源码文件 kendou-book/book-server/server/crawler/book.js,涉及修改的代码如下:
</>复制代码
...
console.log("bookkkk:", browser)
const page = await browser.newPage()
await page.goto(url, {
waitUntil: "networkidle2",
+ timeout: 3000000
})
对应的源码文件 kendou-book/book-server/server/crawler/chapter.js,涉及修改的代码如下:
</>复制代码
...
const page = await browser.newPage()
await page.goto(url, {
waitUntil: "networkidle2",
+ timeout: 3000000
})
问题三(源码瑕疵)
问题描述:定义 book 的 schema 的时候,字段(author)拼写错误
解决方案:
对应的源码文件 kendou-book/book-server/server/database/schema/book.js,涉及修改的代码如下:
</>复制代码
...
- auhtor: {
type: String
},
+ author: {
type: String
},
对应的源码文件 kendou-book/book-server/server/crawler/book.js,涉及修改的代码如下:
</>复制代码
...
let result = await page.evaluate(() => {
return {
headImg: document.querySelector(".story_cover_m62topxs img").getAttribute("src"),
name: document.querySelector(".info_left_m62topxs h1").innerText,
- auhtor: document.querySelector(".info_left_m62topxs h2 a").innerText,
+ auhtor: document.querySelector(".info_left_m62topxs h2 a").innerText,
chapterNum: document.querySelectorAll(".cp_dd_m62topxs").length
}
})
参考链接:
mongoose相关
mongoose相关
puppetter安装就踩坑-解决篇
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/100364.html
摘要:前言根据慕课网实现电影微信公众号前后端开发学习后的改造由于上下班期间会看会小说,但是无奈广告太多,还要收费,于是结合课程,进行开发,并上传到自己的微信小程序。 前言:根据慕课网 Koa2 实现电影微信公众号前后端开发 学习后的改造 由于上下班期间会看会小说,但是无奈广告太多,还要收费,于是结合课程,进行开发,并上传到自己的微信小程序。 showImg(https://segment...
摘要:平日学习接触过的网站积累,以每月的形式发布。年以前看这个网址概况在线地址前端开发群月报提交原则技术文章新的为主。 平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 概况 在线地址:http://www.kancloud.cn/jsfront/month/82796 JS前端开发群月报 提交原则: 技...
摘要:平日学习接触过的网站积累,以每月的形式发布。年以前看这个网址概况在线地址前端开发群月报提交原则技术文章新的为主。 平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 概况 在线地址:http://www.kancloud.cn/jsfront/month/82796 JS前端开发群月报 提交原则: 技...
摘要:平日学习接触过的网站积累,以每月的形式发布。年以前看这个网址概况在线地址前端开发群月报提交原则技术文章新的为主。 平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 概况 在线地址:http://www.kancloud.cn/jsfront/month/82796 JS前端开发群月报 提交原则: 技...
阅读 3394·2021-10-13 09:39
阅读 2118·2021-09-27 13:36
阅读 3167·2021-09-22 16:02
阅读 2678·2021-09-10 10:51
阅读 1674·2019-08-29 17:15
阅读 1600·2019-08-29 16:14
阅读 3693·2019-08-26 11:55
阅读 2626·2019-08-26 11:50