Koa2 + Mongo + 爬虫 搭建 小说微信小程序(本地开发篇)---编码时遇到的问题

发布时间:2019-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Koa2 + Mongo + 爬虫 搭建 小说微信小程序(本地开发篇)---编码时遇到的问题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

更新于 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安装就踩坑-解决篇

脚本宝典总结

以上是脚本宝典为你收集整理的Koa2 + Mongo + 爬虫 搭建 小说微信小程序(本地开发篇)---编码时遇到的问题全部内容,希望文章能够帮你解决Koa2 + Mongo + 爬虫 搭建 小说微信小程序(本地开发篇)---编码时遇到的问题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。