位置: 编程技术 - 正文

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

  • 小规模纳税人有增值税吗
  • 纳税申报流程视频教程
  • 向农业生产者收购原木进项税怎么算
  • 深圳增值税普通发票查询真伪
  • 发票红票和退票区别在哪
  • 一般纳税人应交增值税怎么算
  • 农产品加工需要交税吗
  • 供热企业不得抵扣的进项计算
  • 销售自己使用过的物品
  • 二手房如何缴纳契税
  • 固定资产折旧法律法规
  • 中小微企业优惠政策落实措施
  • 劳务发票税率营改增后是多少?
  • 企业接收供应商赠品怎么正确的入账?
  • 企业股权无偿划转是否征税
  • 旅游公司发票企业能报销吗
  • 建筑业如何核算费用
  • 公司社保和公积金没有足额缴纳
  • 减半征税怎么算
  • 融资租赁开始时的账务处理
  • 多缴个税账务处理
  • 以资抵债方式取得的无形资产如何记账?
  • 消费税的附加税和增值税的附加税
  • 无形资产摊销算头不算尾
  • 全部投资内部收益率
  • 华为mate x3最新价格
  • UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
  • 如何更改自己
  • 启动电脑显示器不亮怎么回事
  • PHP:Memcached::replaceByKey()的用法_Memcached类
  • 领用配件计入什么科目
  • hpzts04.exe是什么进程 有什么作用 hpzts04进程查询
  • River Avon in Bath, England (© Robert Harding World Imagery/Offset by Shutterstock)
  • 全网最详细的李白解说来了
  • uniapp简介
  • ifconfig命令配置地址
  • 领用发票后
  • 公司年夜饭怎么说话
  • 公司总人数和上社保人数
  • 确认递延所得税负债的分录
  • css文件代码示例
  • 不动产投资应该怎么做账
  • vue实现响应式的原理
  • 网上打印出来的手机买卖协议有效吗
  • 跨年度少计提的企业所得税
  • 息税前利润的计算公式EBIT
  • 试分析营改增的重大意义
  • 资本公积资本溢价怎么算
  • 员工休产假不发工资违法吗
  • 房地产开发企业会计制度
  • 报销差旅费用什么收款凭证还是转账凭证
  • 向非关联企业捐赠现金能不能抵扣
  • 备用金如何管理制度
  • 手工账的做账流程图
  • 原材料登记什么明细账
  • 酷炫技术:使用ssh登录管理windows系统
  • VISTA 下如何通过红外线连接外接设备 以索尼手机为例
  • macfic
  • xp怎么装系统步骤图解
  • winxp如何将两个分区合并成一个分区
  • ubuntu20.04怎么用
  • centos7.6桌面版安装教程
  • win10正版免费升级
  • linux的链接文件
  • win7电脑ip地址怎么查
  • ubuntu怎么安装程序
  • win7怎么cmd
  • opengl context for format
  • nodejs事件循环和js事件循环
  • Android中SQLite数据库的使用
  • 编写批处理
  • javascript中array数组对象的含义及常用方法
  • 一起学下载软件
  • jQuery简单实现tab选项卡切换效果
  • 辽宁省税务举报电话
  • 电子办税服务厅怎么开电子发票
  • 税务局残疾人就业保障金
  • 购销合同印花税最新政策2023
  • 广东省电子税务局官网
  • 建安服务税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设