我转过几个弯 绕过那个小雨楼
拿着蒲扇摆着衣衫渡着紧箍咒
不问天涯不停留 喝过几壶酒
不过年少白头道义放胸口
倘若明天之后 遥看前尘剑封侯
似那天上神仙无所求
朝朝暮暮君如梦醒十分不为何理由
是真是假是惶恐是无休
路过这风雨花满楼 片刻都不停留
我本这书生进京赶考留下许多愁
你问有没有时候 我叹这天道默悠悠
能否与我一醉方休
又过了几个弯 算尽天量道莫慌
踏这田园闻这芳草香
跌跌撞撞仗剑天涯折煞不枉无笔良
是梦是幻是温柔是家乡
路过这风雨花满楼 片刻都不停留
我本这书生进京赶考留下许多愁
你问有没有时候 我叹这天道默悠悠
能否与我一醉方休
路过这风雨花满楼 片刻都不停留
我本这书生进京赶考留下许多愁
你问有没有时候 我叹这天道默悠悠
能否与我一醉方休
谁能与我一醉方休
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模块异步读存,加上爬虫的抓取他是很快的遍历,所以会导致,上一个还没存完,第二个又来了,所以我这里建议,读存使用同步方法。
预览图
源码
这里就提供下源码了,有兴趣的可以自行下载,给自己也留个在线包方便以后用的时候直接拿。
此处内容已隐藏回复后方可阅读。
1
评论(0)