位置: 编程技术 - 正文

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

  • 离职员工奖金发放规定
  • 带薪休假会计
  • 个体工商户必须缴纳社保吗
  • 什么情况下视同销售
  • 发票勾选平台怎么导出未勾选的发票
  • 管理费用为负数可以申报吗
  • 交易性金融资产借贷方向
  • 利润分配的核算PPT
  • 其他资本公积属于
  • 企业拆迁安置房能买吗
  • 2018年所得税率
  • 账本印花税怎么做账
  • 打印的电子发票需要盖章么
  • 电费收入印花税如何计算
  • 农产品没有进项税怎么算
  • 为什么增值税发票综合服务平台进不去
  • 海关缴款书抵扣怎么做账
  • 公司经营困难情况说明怎么写
  • 出租厂房算什么收入
  • 出口货物 关税
  • 税务大厅申报社保需要资料
  • 清包工和甲供工区别在哪
  • 应付职工薪酬包括公积金吗
  • 关于递延所得税资产负债的表述
  • 预交增值税抵减申报
  • 1697508560
  • 公司有好多没有股份的人
  • 客户支付货款时扣除了手续费
  • 社保跨省转移社保流程
  • 全年一次性奖金税率表
  • 人工智能导论报告
  • 建筑行业怎么做职业生涯规划
  • 冲回上年多提的费用会计分录
  • 如何选购餐桌椅
  • 鱼湖国家森林中心在哪里
  • 建筑企业跨区域还需预缴增值税吗
  • 消费税会计分录完整案例
  • websocket怎么读
  • vi命令模式下的常用命令有哪些?
  • html不能运行
  • 企业所得税应该怎么计算
  • 期末存货资产结存金额
  • 房产自用改为出租如何申报房产税
  • 有问题的原始凭证是什么
  • 货已入库进项发票未到怎么办
  • python怎么用
  • 选择mysql数据库为当前数据库
  • pandas columns排序
  • 保险公司工伤怎么赔付
  • 金税四期的基本理念
  • 购买材料收到普票怎么做会计分录
  • 股东权益合计是所有者权益总和么
  • 待处理财产损溢借方是增还是减
  • 会计丁字记账法
  • 拒收发票需要拒收证明么
  • 上年度没有计提企业所得税,今年怎么做分录
  • 利润太高,如何调产品收发存
  • 其他应收款有哪些科目
  • 饭店卖烟酒需要什么手续
  • 留抵税额可以抵欠税吗
  • 小企业的建账流程分为什么内容
  • CentOS 7.2下MySQL的安装与相关配置
  • mysql索引数据结构有哪些
  • mysql获取当前行数
  • 韩国电脑用什么系统
  • Windows Server 2008的节能降耗
  • mac怎么复制粘贴文件夹
  • 制作win7系统安装u盘系统
  • 虚拟机的ubuntu
  • linux0.01编译
  • marvell 网卡驱动
  • win7系统无法共享win10系统打印机
  • linux安装与基本命令
  • [置顶]游戏名:chivalry2
  • linux shell函数
  • ping大包丢包小包不丢包
  • 一张监控
  • 办公室主任和党支部书记哪个职位高
  • 百旺税控盘怎么备份数据
  • 国税发2014年39号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设