位置: 编程技术 - 正文

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

  • 车船使用税怎么网上缴费
  • 期末留抵税额是怎么产生的
  • 我国现行的增值税属于什么
  • 消费税组成计税价格怎么理解
  • 汽车销售分期付款的账务处理
  • 成本和费用的区别在于()
  • 其他应付款是不是长期负债
  • 公司账户被法院冻结了多久可以恢复
  • 二类经适房转商品房需要交多少钱
  • 股权转让评估费可以有公司承担吗
  • 银行手续费发票怎么开
  • 前年度库存商品少结转业务怎么处理?
  • 公司注册资本会留存多少
  • 契税计税依据是否包含耕地占用税
  • 体检中心免税政策
  • 内蒙古地税电子税务局app
  • 国家税务总局关于取消增值税扣税凭证
  • 无票收入如何做会计凭证
  • 开餐费发票要开具数量和单价吗
  • 盈余公积什么时候调整
  • 利息支出的会计科目
  • 如何在虚拟机上下载软件
  • 华为鸿蒙系统如何刷机
  • 其他应收款对应的会计科目
  • 认缴出资怎么记账
  • OS X Yosemite系统怎么样 OS X Yosemite功能介绍
  • 代开发票的弊端?
  • ReadTimeoutError: HTTPSConnectionPool(host=‘cdn-lfs.huggingface.co‘, port=443)
  • 固定资产加速折旧计算方法
  • 债权类股票有哪些
  • 广告费和业务宣传费调增还是调减
  • 怎么缴销空白发票
  • curl error6
  • vue项目开发环境
  • PHP面向对象程序设计
  • 换货和退货有什么区别
  • 城市维护建设税是什么意思
  • php去掉最后一个逗号
  • 怎么把python代码发给别人运行
  • 政府补贴流程
  • jdbc连接sqlserver2012
  • 残疾人开公司要交税吗
  • 差旅费报销人员范围
  • 关于预计净残值的计算题及答案
  • 企业捐赠自产产品的所得税处理
  • 零税率发票有法律效力吗
  • 录入期初余额的操作方法
  • 常见的递延所得税
  • 微信收入构成在哪
  • 用友t3计提折旧了没有生成凭证
  • 投资收益怎么做帐
  • 总分类账封面封地和启用页的区别
  • mysql的三种查询方式
  • sql数据库口令
  • windows8出现蓝屏
  • 服务器控制电脑
  • 永久关闭windows de
  • centos怎么样
  • dos破解密码输入什么
  • 计算机策略设置
  • 系统相机打不开
  • win10系统怎么设置最好
  • css样式的使用
  • ExtJs3.0中Store添加 baseParams 的Bug
  • JQuery.Ajax()的data参数类型实例详解
  • 奇门遁甲实例详解
  • h5 nodejs
  • 网页shell命令
  • python基本用法
  • python怎么生成excel
  • Node.js中的什么模块是用于处理文件和目录的
  • python容错
  • 统计一组数据各个数字出现的次数
  • 使用jsonp跨域,服务端如何改
  • jquery 放大镜
  • python 中
  • jQuery插件封装时如要实现链式编程,需要
  • JavaScript中Textarea滚动条不能拖动的解决方法
  • shell ftp -n
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设