吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2664|回复: 4
收起左侧

[会员申请] 申请ID:前端小白

[复制链接]
吾爱游客  发表于 2020-6-23 09:25
申 请 I D:前端小白

个人邮箱:1845477671@qq.com

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

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


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




以下开始教程

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

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

图片2.png


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

图片3.png

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

图片4.png



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

图片5.png

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

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

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

图片6.png


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

图片7.png

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


图片8.png


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


小说标题
图片10.png


小说描述
图片11.png



小说图片

图片12.png

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

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

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



图片17.png

图片18.png


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

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





发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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

大佬,是不是内容太简单了?

点评

是的,你可以参考下现在精华帖的标准。  详情 回复 发表于 2020-6-23 19:08
4125891 发表于 2020-6-23 14:00
首先支持下楼主,静待52开园之日便是你绚烂绽放之时!
Hmily 发表于 2020-6-23 19:08
游客 218.0.219.x 发表于 2020-6-23 11:30
大佬,是不是内容太简单了?

是的,你可以参考下现在精华帖的标准。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 05:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表