koa框架 爬虫
听别人说node可以写爬虫,然后我去尝试了一下,有点累啊,大概原理其实用jq都能做出来效果,只是说没有后台操作了。
原理
- 利用http模块发出请求
- 获取到网页信息
- 通过cheerio插件进行提取信息
- 保存
遇到的一些问题
首先就是提取信息,因为获取到的其实是一个html页面的内容,我们需要进行提取,这里当然用jq会方便很多,但是node里面没有jq,只有cheerio这个伪jq,所以很多jq的方便的方法,使用这个插件用不出来。
特别是$(".box:nth-child(2)")
这种选择器就无法使用,只能通过eq,和find进行截取,然后再each循环,性能上应该很浪费。
转义
有的站点他的html是转义的,我们直接通过正则去匹配的话,得到的值也只能是未转义的,而js无法将其转为中文字符,所以很头疼,最终做法是使用cheerio的方法获取dom节点,通过.text()
方法或者attr()
这种来进行获取。
正则行不通。
保存,如果你是存数据库,那很好说,我这里讲讲我存本地的一些问题。
我的想法是就存个本地json文件好了,反正东西也不多,存mysql就有点浪费了。
所以我使用了promise-fs模块异步读存,加上爬虫的抓取他是很快的遍历,所以会导致,上一个还没存完,第二个又来了,所以我这里建议,读存使用同步方法。
预览图
源码
这里就提供下源码了,有兴趣的可以自行下载,给自己也留个在线包方便以后用的时候直接拿。
此处内容已隐藏回复后方可阅读。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据