位置: 编程技术 - 正文

nodejs制作爬虫实现批量下载图片(node爬取数据)

编辑:rootadmin

推荐整理分享nodejs制作爬虫实现批量下载图片(node爬取数据),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node做爬虫,node.js写爬虫,nodejs做爬虫,nodejs爬虫框架crawler,nodejs做爬虫,node.js写爬虫,node做爬虫,node.js写爬虫,内容如对您有帮助,希望把文章链接给更多的朋友!

今天想获取一大批猫的图片,然后就在流浪器搜索框中输入 猫 ,然后点击图片。就看到了一大波猫的图片: ,我在想啊,要是审查元素,一张张手动下载,多麻烦,所以打算写程序来实现。不写不知道,一写发现里面还是有很多道道的。

1. 爬取图片链接

因为之前也写过nodejs爬虫功能(参见:NodeJS制作爬虫全过程 ),所以觉得应该很简单,就用cheerio来处理dom啦,结果打印一下啥也没有,后来查看源代码:

发现 waterfall_zoom 里面空空如也,查找了一下,发现所有的数据都是写在 <script> 里面,然后动态加载到页面的,所以用cheerio.load到的页面里面其实没数据的。真实数据:

分析完毕,刷刷写代码:

2. 下载图片到本地 2.1 粗糙的方案

最初的思路很简单,简单的 fs.createWriteStream() 就能解决:

使用方式:

成功捕获一只猫!然后写了一个循环准备捕获所有猫。然而这种方式是串行的,速度很慢!下载一大批图片要花大量时间。

nodejs制作爬虫实现批量下载图片(node爬取数据)

2.2 使用async异步批量下载

关于async的map操作,详见: async_demo/map.js ,对集合中的每一个元素,执行某个异步操作,得到结果。所有的结果将汇总到最终的callback里。与forEach的区别是,forEach只关心操作不管最后的值,而map关心的最后产生的值。

提供了两种方式:

并行执行。 async.map 同时对集合中所有元素进行操作,结果汇总到最终callback里。如果出错,则立刻返回错误以及已经执行完的任务的结果,未执行完的占个空位

顺序执行。 async.mapSeries 对集合中的元素一个一个执行操作,结果汇总到最终callback里。如果出错,则立刻返回错误以及已经执行完的结果,未执行的被忽略。

在此处:

注: 此处使用setTimeout,是因为下载需要一定时间,在笔者较慢网速下,需要ms的间隔能确保每张图片下载完全。

成功捕获一批猫猫!

2.3 使用bagpipe批量

bagpipe 是朴灵大大做的一个在nodejs中控制并发执行的模块。其安装和使用也比较简单:

使用:

在此处:

3.总结

作为一个程序员,能用程序解决就不手动解决。每一次尝都会有新的收获。

详解Node.js开发中的express-session 什么是sessionsession是保存在服务器端的会话。session的典型应用场景是用户登录某网站之后,将其登录信息放入session,在以后的每次请求中查询相应的登

nodejs批量下载图片的实现方法 今天想获取一大批猫的图片,然后就在流浪器搜索框中输入猫,然后点击图片。就看到了一大波猫的图片:

深入理解nodejs中Express的中间件 Express是一个基于Node.js平台的web应用开发框架,在Node.js基础之上扩展了web应用开发所需要的基础功能,从而使得我们开发Web应用更加方便、更加快捷。

标签: node爬取数据

本文链接地址:https://www.jiuchutong.com/biancheng/380794.html 转载请保留说明!

上一篇:Node.JS利用PhantomJs抓取网页入门教程(nodejs怎么使用)

下一篇:详解Node.js开发中的express-session(node 开发)

  • 关税完税价格计算消费税公式
  • 胶水开票开什么类目
  • 实物投资账务处理
  • 红字发票重复提交了数据该怎么处理
  • 不征税收入怎么申报企业所得税
  • 运输过程中的货损责任
  • 委托加工的账务处理
  • 年度纳税申报时间规定
  • 公司对外投资是股东会还是董事会
  • 个人取得的拆迁款需要缴纳个人所得税吗
  • 企业一直零申报印花税
  • 商贸有限公司要报地税吗
  • 小规模纳税人变成一般纳税人的条件
  • 营改增后房地产企业增值税如何核算
  • 年终一次性奖金个税计算
  • 简述分期收款业务的处理流程
  • 支付法院执行款的账务处理
  • 新入职员工如何加入企业微信
  • 工资中的公积金怎么算法
  • 投入法和产出法的确定属于会计估计变更吗
  • 植物租赁方案
  • 如何向企业支付宝收款
  • php编程入门教程
  • XP系统,右下角本地连接图标消失的解决办法
  • 债转股适用范围
  • 进项税大于销项税怎么结转
  • 公司备用金申请单
  • k210中文手册
  • 公司每年都有什么费用
  • 使用php进行mysql数据库编程的基本步骤
  • 盈余公积金可以用来扩大公司生产经营
  • 什么是重大会计事务所
  • 代理业务资产的核算方法
  • php照片上传
  • 维保服务的税率是多少
  • vue3获取dom元素的方法
  • ssh -o命令
  • 浅析Laravel5中队列的配置及使用
  • php框架自动加载
  • 保理属于什么行业分类
  • 税控盘没交年费会怎么办
  • 织梦cms要钱吗
  • 企业电子承兑
  • mysql8绿色版安装
  • 电商平台收入何时到账
  • 专利权摊销如何计算
  • 公司办理网银
  • 日用品增值税率是多少
  • 预收账款转收入的条件
  • 网上打印的电子机票可以报销不
  • mysql5.7版本下载
  • linux系统中的用户大体可分为三组
  • freebsd安装教程
  • jucheck.exe
  • sesvc.exe是什么
  • mac上itunes
  • java操作windows的文件管理器
  • qbupdate.exe - qbupdate是什么进程 有什么作用
  • win7应用程序没反应
  • 如何让xp系统崩溃
  • wind10手机版
  • linux创建目录函数
  • 电脑开机显示微信号怎么回事
  • Win10预览版镜像
  • linux内核配置文件
  • 微软windows10正版
  • ES6 javascript中class类的get与set用法实例分析
  • cocos2dx 3.17
  • cocos做游戏
  • 查找最近文件操作记录
  • unity android build support
  • async/await与promise(nodejs中的异步操作问题)
  • jquery.form
  • python爬取某人所有朋友圈
  • 小规模纳税人购买车辆如何入账
  • 江苏税务个人所得税app下载
  • 保险免保费是什么意思
  • 小程序河南税务局
  • 无锡市高新区税务局张贤平
  • 土地要钻几回才能挖
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设