位置: 编程技术 - 正文

nodejs批量下载图片的实现方法(nodejs实现文件下载)

编辑:rootadmin

推荐整理分享nodejs批量下载图片的实现方法(nodejs实现文件下载),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs实现jpg下载,nodejs怎么下载,node.js批量添加数据,node下载图片,nodejs实现文件下载,nodejs怎么下载,nodejs实现jpg下载,nodejs实现文件下载,内容如对您有帮助,希望把文章链接给更多的朋友!

今天想获取一大批猫的图片,然后就在流浪器搜索框中输入猫,然后点击图片。就看到了一大波猫的图片: 爬取图片链接

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

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

分析完毕,刷刷写代码:

2. 下载图片到本地

2.1 粗糙的方案

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

使用方式:

nodejs批量下载图片的实现方法(nodejs实现文件下载)

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

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.总结

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

标签: nodejs实现文件下载

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

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

下一篇:深入理解nodejs中Express的中间件(node.js的概念)

  • 如何在天猫平台抢茅台
  • 幼儿园营业税税率是多少
  • 价税合计金额怎么算出税额
  • 查询一般纳税人资格证明
  • 票据承兑和贴现市场上最主要的交易对象是( )
  • 已认证红字信息表
  • 行政事业单位的会计核算可以采用权责发生制吗
  • 债权如何变现
  • 收到抵物广告费的会计处理怎么做?
  • 在建工程 费用
  • 冲抵货款的返利怎么做账
  • 收到保险公司返还的保险费
  • 进货发票未到怎么做账
  • 已认证的发票如何导入
  • 投资公司的利息支出可抵扣吗
  • 互联网合同要交社保吗
  • 个体户个人所得税税率表2023计算
  • 发票进项和销项对不上后果
  • 金税盘要钱不
  • 三证合一后怎么看税号
  • 购买理财产品会损失本金吗
  • 公司结算工资
  • 货物毁损物流赔偿
  • 原材料明细账目
  • 公司所得税汇算清缴退税流程
  • 验旧作废发票遗失了如何验旧?
  • 公司销售商品怎么做分录
  • 盘盈对应的入账科目
  • 自有房屋的装修费计入长期待摊
  • 住宿费专票报销怎么做账
  • 收到发票最晚什么时候付款
  • 注册资本认缴与注册登记实操
  • 旅游服务费如何入账
  • 华为nova9值得买吗知乎
  • win7系统如何查看主板型号
  • 收到招标公司开的发票
  • 合并财务报表抵消损益怎么理解
  • lcasensor是什么进程
  • 舍夫沙万的蓝色是什么意思
  • 购买原材料的运输费计入什么科目
  • php变量函数
  • 牛顿地名
  • 海浪冲击着海岸
  • 企业固定资产账户2019年6月初借方余额5000000元
  • 计提的福利费怎么处理
  • 电子退库款
  • 消费税减免规定有哪些
  • 最新前端面试题
  • php封装数据库操作
  • 产成品核算的内容
  • 企业销售旧车增值税处理
  • 对公帐户进出帐要交税吗
  • sql server中变量声明的命令是什么
  • 车辆购置税能否融资租赁
  • 给员工买保险的好处和坏处
  • 事业单位无形资产包括
  • 购买方如何申请红字信息表填写负数吗
  • 软件开发企业怎么结转成本
  • 贴现利息收入的账务处理
  • 包装物报废收回残料
  • 土地补贴款是什么意思
  • 年末本年利润没有结转影响报税吗
  • 进项税转出补缴增值税 城建税及两费
  • windows 2008
  • win8无法连接到internet
  • win8.1快捷键
  • win7系统的话筒在哪设置
  • pavsrv50.exe - pavsrv50进程管理信息
  • Slackware Linux init 进程
  • [置顶]马粥街残酷史
  • js原型作用
  • python批量创建文件
  • javascript基础笔记
  • python list的操作
  • python操作mongodb数据库
  • python中email模块
  • 化妆品的消费税率为
  • 进项税留抵是什么意思
  • 其他收入工会经费必须申报吗
  • 小规模税控盘全额抵扣怎么做分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设