发表于 2020-6-23 09:25

申请ID:前端小白

申 请 I D:前端小白

个人邮箱:1845477671@qq.com

原创技术文章:使用NodeJS 进行爬虫下载小说信息

本人前端小白,目前还在努力学习中,给大家分享我在使用NodeJS进行爬虫操作,抓取小说信息并下载图片的过程

NodeJS进行爬虫操作并下载图片



以下开始教程

首先要先要导入以下几个模块,对应的作用已经写了注释


然后要先找想要爬的网站,并找出小说列表的页码和网址之间的规律,然后把他们都添加到数组中   我这里用的起点中文网的,是在免费列表中的,
这里我就放了2个网址,防止爬取的数据过多,容易封IP




然后 需要创建一个方法,这个方法是解析网页,并拿到网页中的数据 进行操作,先把基础的框架搭好,先看是否可以执行。



接着需要用到异步函数了,限制并发量5条,遍历网址的数组,用每条url进行解析网页,最终得到数据。





接下来 执行下函数,可以看出



由于2条网址太少了,达不到5条并发的要求,所以我用了20条,这样就可以很好的看出异步操作并发数据的好处了,接下来开始解析并抓取网页中的数据

使用superagent模块进行解析网页,获取网页DOM节点树,并设置网页的编码格式,然后判断当前操作是否有错误,如果有返回错误,没有继续下一步操作

使用 cheerio模块解析网页,定义$,因为和jQuery语法类似,方便理解,然后在网页找出需要抓取的数据的标签




这里的$(".all-img-list li") 就是上面网页截图的元素,也是目标元素,遍历目标元素,使得每次都可以出发.emit方法,res.text就是网页的DOM节点树。



这个.after函数就是.emit触发后执行的操作,主要是用来解析网页,然后返回需要的数据,这里的arr数组就是.emit传过来的数据,然后在网页中找到需要的数据并返回。





这是小说的标题,描述,详情链接和图片


小说标题



小说描述




小说图片



然后在定义的延迟函数,把获取到的数据data通过callback传回去


这里的result就是传过来的data的集合数组,通过遍历把图片的url和小说标题遍历出来,然后通过fs模块下载到本地。


最终CMD窗口上出现的数据以及下载到本地的图片









个人感觉NodeJS的爬虫虽然没有Python的功能强大,但是通过学习操作,开发的乐趣以及难易程度比Python好多了,个人观点,不喜勿喷!

以上就是本人使用NodeJS爬虫爬取小说信息并下载图片到本地的全部过程,如有不对 请指正,希望可以通过审核,自己也会继续努力!奥利给!




Hmily 发表于 2020-6-23 10:43

抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

发表于 2020-6-23 11:30

Hmily 发表于 2020-6-23 10:43
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

大佬,是不是内容太简单了?{:1_907:}

4125891 发表于 2020-6-23 14:00

首先支持下楼主,静待52开园之日便是你绚烂绽放之时!

Hmily 发表于 2020-6-23 19:08

游客 218.0.219.x 发表于 2020-6-23 11:30
大佬,是不是内容太简单了?

是的,你可以参考下现在精华帖的标准。
页: [1]
查看完整版本: 申请ID:前端小白