位置: 编程技术 - 正文

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
  • 个税申报人员多怎么申报
  • 没有上市的公司怎么看财务报表
  • 应发工资包含请年假吗
  • 汇兑损益现金流量表列示
  • 找税局代开的金额在3万以下是否需交税
  • 承租人与出租人签订了一份租赁合同,该设备
  • 转让不动产增值税预缴
  • 净利润为负数还要交所得税吗
  • 发票认证了还能退回吗
  • 待认证进项税额转出会计分录
  • 收到银行承兑汇票计入什么科目
  • 免交的增值税计入什么科目
  • 健身房会计一般做什么
  • 洒水车属于免税车辆吗?
  • 企业取得的哪些成果
  • 汇票和本票之间在使用上有什么差别
  • 我的初级奋斗经历作文
  • 未分配利润是什么类科目
  • 污水处理费谁来收
  • 税控盘服务费申报是在哪里填写
  • 汇算清缴的租赁费怎么算
  • 筹建期间的广宣费
  • 如何理解结转利润的意思
  • bios里面怎么设置中文
  • 发票金额大于实付金额,要怎么入账
  • 财政拨款收入是指行政单位从哪里取得的预算资金
  • mac系统怎么清除数据
  • win7电脑软键盘怎么打开
  • uview2.0封装http请求实战以及常见请求传参实录
  • 分期收款销售账务处理及税务处理
  • 不动产和无形资产的区别
  • 零申报怎么做报表
  • 退休返聘人员算临时工吗
  • 购进的产品样品怎么入账
  • 当月没有生产情况正常吗
  • 法院判定支付对方诉讼费,我可以入账吗
  • 其他收益增加说明什么
  • 人工智能rl
  • session用处
  • php实现会话的步骤
  • 尚未抄税无法申报
  • 费用退回如何记账
  • 第一次购买金税盘会计分录
  • 免征文化事业建设费条件的销售额标准
  • 一般纳税人销售自己使用过的物品
  • 缴纳增值税的会计处理方法
  • 库存现金的账务处理流程
  • 政府资助专项资金是什么
  • 工程预付款入账
  • 清理固定资产是什么意思
  • 本年利润在借方表示什么意思
  • 营改增后建筑企业如何正确开具发票
  • 会计账本是一年一本吗
  • mysql查询结果输出
  • 左右内边距代码
  • win8系统如何查看电脑mac物理地址
  • auto tool怎么用
  • android 程序开发
  • 批处理有何限制
  • 基于像素的分类方法
  • 简述jquery的实现原理
  • linux for i in
  • real interval
  • crontab每秒执行一次命令
  • vim命令详解
  • android studio downloading
  • shell脚本中获取日期
  • js中dom的用法
  • python搜索功能
  • python文件文件夹操作
  • python获取list集合中某一元素的值
  • android java编程
  • 余额宝出现问题怎么办?
  • 甘肃税务政策
  • 应缴纳资源税税额怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设