需求
前段时间发现了 superagent
这个库,发现比我之前使用的 request
这个库方便多了,准备把我的毕设的爬虫端用这个重写来着,
但是看完文档一直没动手,直到同学让我帮他爬个数据,然后我就写了个爬虫。
dependencies
使用了 superagent
获取获取然后使用 jsdom
解析,后期使用了 node-xlsx
来把json转为xls格式。
源码&Useage
小总结
这个爬虫我分了两个部分。整个过程还是很简单的,获取url存到数组里->保存成json->读取json根据url获取页面信息->保存成json->json转xls。
第一部分
第一部分我先获取每个投资单的url,这里非常简单,就是改变分类页的页号然后获取这个页面下所有的链接的 href
特性值,
然后使用Promise.all
来解决多重异步循环。
第二部分
获取投资单url后,即可获取每个页面上的具体信息,这里有两个坑爹的地方,第一个就是若用户没有详细信息,这个页面的布局就不同,
此时用class获取的dom集合的顺序不同,一开始我都没有发现,后来才发现。第二个坑点是我没想到获取页面会失败的情况,本来也准备
用 Promise.all
的,然后有可能会卡住,然后我就用递归。
插曲
开始运行运行爬虫的时候不知道爬到第几个页面了,然后我就加个进度栏(格式[205/20000])就看着爽多了😆。