位置: 编程技术 - 正文

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的概念)

  • 印花税购销合同减半征收政策
  • 年金的扣费标准
  • 供热管道属于什么经营范围内
  • 负利润的话小型微利企业减免企业所得税吗
  • 无形资产处置收益计入
  • 已申报未导入是申报成功了吗
  • 低于5000是什么意思
  • 耕地占用税的纳税人是谁
  • 收入工程款后什么时候计提印花税
  • 销售货物没有开票如何处理
  • 两个其他应收款的区别
  • 以前年度损益调整科目怎么用
  • 提取法定盈余公积比例
  • 印花税工会经费会计分录
  • 房地产企业土地增值税
  • 可以把两张发票合写在记账凭证上吗
  • 增值税专用发票抵扣期限
  • 减免所得税额明细表
  • 进项票下个月才能到,怎么避免交税
  • 出售固定资产累计折旧的账务处理
  • 购入生产车间
  • 什么是应付债券简单举例
  • App Store可以退款吗
  • mac电脑command键快捷设置
  • 英雄联盟登录失败7502013
  • 购买商品接受劳务的现金流包括哪些
  • 其他权益工具投资公允价值变动怎么计算
  • 诊所免税政策
  • 辅导期纳税人领票预缴税款
  • u盘安装pe系统
  • 发票作废之后税钱怎么退回了
  • 存货包括哪些会计账户
  • 企业最佳资金结构
  • php判断数组长度
  • 商铺转让权是什么意思
  • 史上最贵的微博
  • php 正则
  • ajax如何返回数据
  • 2023版最新最全React面试题
  • 暂估收入如何做账
  • wordpress限制下载次数
  • 职工教育经费的比例是多少
  • 有下列情形之一的,当事人可以解除
  • 抵扣的税可以退掉么?
  • 会计人员未参加继续教育
  • 电子税务局实名核验失败
  • 不征税收入与免税收入的区别是什么
  • 本月冲红上月发票后的税款能抵减吗
  • 简易征收应纳税额
  • 企业转让专利需要交什么税
  • 公对公转账货款写成了往来款怎么办
  • 公司向股东个人借款怎么做账
  • 应交税金-应交增值税明细账
  • 减免的税金怎样做会计分录
  • 金税盘税费减免分录
  • 小微企业免征增值税优惠
  • debian9.6安装教程
  • zmweb.exe是什么进程
  • cocoscreator动画
  • Unity3D HTTP协议 网络通信 post get
  • Android OpenGL ES(三)----编程框架
  • js 正则验证
  • grid表格
  • css设置表格隔行换色
  • node. js教程
  • 深入了解工作优势怎么回答
  • js删除li
  • jquery日历框有长期的选项
  • python读写docx
  • 遍历字符串python
  • jquery获取table指定的行列
  • 安卓启动器修改
  • javascript异步编程
  • wordpress 0day
  • python计算字符串长度的程序
  • 工程咨询服务税需要每月缴纳吗
  • 政治轮训的效果
  • 江苏地方税务局2013招考公告
  • 个人所得税网上报税流程
  • 广东省税务局发票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设