位置: 编程技术 - 正文

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

  • 保险中的车
  • 一般纳税人企业所得税多久申报一次
  • 原材料暂估入库怎么做账
  • 跨月作废增值税专用发票
  • 出口退税不退税则征税
  • 开出商业承兑汇票到期会计分录
  • 通用定额发票真伪查询系统
  • 房地产开发企业资质证书
  • 行政事业单位专用材料费列支范围
  • 建筑劳务公司的工资计入什么科目
  • 企业外购的无形资产摊销,可以加计扣除吗?
  • 支付明年报刊费
  • 银行里的钱没有了怎么办
  • 抵税更正申报需要多久
  • 土地增值税缴纳标准
  • 税种核定办理流程
  • 财税〔2017〕39号商业健康保险个人所得税
  • 增值普通发票税率怎么算
  • 计提的工资没有实际发放,是否需要调增?
  • 财付通交易手续费多少
  • 研发支出期末需结转吗
  • 小规模纳税人季度申报表怎么填
  • 未分配利润怎么填
  • 会员卡充值赠送金额怎么做账
  • 旅行社税收
  • 外购商品领用会计分录
  • 不动产进项抵扣新政策2022
  • 可转换公司债券账务处理
  • 开票收入怎么理解
  • linux系统怎么关闭端口
  • 资产负债表短期负债包括哪些
  • windows11正式版好用吗
  • php4位数的随机字符
  • 超市预售卡怎么记账
  • 一个药厂能够生产药品的三个前提条件
  • incorrect email format
  • php类型判断
  • PHP:mb_send_mail()的用法_mbstring函数
  • php中defined什么意思
  • 优先股转化
  • 格雷厄姆岛
  • Zend Framework+smarty用法实例详解
  • 手续费在银行系统哪里查
  • 房产备案交税
  • php获取随机数
  • vue3获取dom元素的方法
  • 服务器部署环境
  • 怎样安装∪sb
  • php web socket
  • thinkphp6多表关联查询
  • vue状态机
  • 如何登记现金明细账
  • 资产负债表中应交税费为负数是什么意思
  • 商业汇票的行为有哪些
  • 小企业会计准则会计科目表
  • sql注入的原理和步骤
  • 未计提完固定资产怎么办
  • 什么单位需要
  • 结转本年利润按什么算
  • 租金收入如何分红给股东
  • 生产车间的保险有哪些
  • 现金流量为负的原因
  • 冲销以前年度费用会计分录
  • 货物丢失账务如何处理
  • 生产销售库存表
  • 银行承兑汇票托收凭证
  • solaris如何关闭usb接口
  • 微软宣布将AI引入Office套件
  • ubuntu桌面版安装教程
  • 苹果mac系统怎么用
  • virtualbox虚拟机菜单找不到了
  • awk统计nginx日志
  • win10正版免费升级
  • win7如何打开命令窗口
  • win8自启动
  • rsync安装使用详解
  • perl列表去重
  • 前端实现图片编辑
  • 说几条javascript的基本规范
  • 东莞市税务局稽查局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设