Node.js简单爬虫开发过程

背景:c#课上老师问我怎么没有课本,面对30多块的课本表示并不想买,于是各种搜索结果只在书问网看见有电子版,并且只能免费预览几十页。

过程:
1.本着能不花钱就不花钱的原则,提示我付费继续阅读后清除浏览器数据发现又可以继续看几十页,得出结果:禁用cookie即可无限预览。

看了下预览页面的html源码,结构不算复杂,内容是一张图片,瞬间想起图片生成pdf,然后就开始尝试使用nodejs开发一个小工具方便下载某些书籍。

使用request+request-promise来处理异步网络请求,使用cheerio解析html获取相关数据,bluebird解决回调金字塔(至今没怎么用明白),mkdirp快速创建文件夹,rimraf快速删除文件夹,pdfkit将图片生成pdf。

开发过程遇到的陷阱(大多数是因为自己能力的不足):
1.promise.then里嵌套异步操作需要按序执行的话可以return该异步操作的promise对象。(因为这个导致的bug拖进度挺久)
2.utf-8编码网页在cheerio.load的时候最好加上disableEncodeEntities:false参数,不然汉字会是utf-8编码(水平有限不知怎么描述,反正不是正常汉字)

最后放源码,仅供参考,不要被我某些不规范的代码误导

https://gitee.com/981764793/shuwen-download

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值