位置: 编程技术 - 正文

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

  • 简易计税方法是什么意思
  • 个人所得税可以不交税吗
  • 建筑综合税率包含企业所得税吗
  • 融资租赁承租方增值税处理
  • 增值税退税什么时候办理
  • 土地使用管理费
  • 收到外国客户的祝福怎么回复
  • 债转股企业所得税资本公积
  • 企业增资扩股如何办理
  • 工业企业购买电机会计分录
  • 建筑业统一发票可以抵扣吗
  • 应交城市维护建设税分录怎么做
  • 发票红冲退税是全额退吗
  • 贷款利息收入要减去支付利息支出吗
  • 海关补料
  • 有形动产租赁印花税税率是多少
  • 实行差额征税的劳务派遣公司一般纳税人认定标准
  • 水资源税的纳税义务人
  • 个税手续费返还奖励财务人员的文件
  • lec风险评价方法
  • 员工福利没有发票
  • 法定代表人的个人债务会执行公司财产么
  • 什么是城市维护费
  • 交印花税会计分录怎么写
  • PHP:mb_ereg_search_regs()的用法_mbstring函数
  • php递归函数遍历数组
  • PHP:oci_field_precision()的用法_Oracle函数
  • win10蓝牙无法连接,有解决方法吗
  • vue编写网页
  • 企业安置残疾人如何残联备案
  • vue程序运行过程
  • 二连浩特老照片
  • nodejs bull
  • 企业清算分配的财产金额怎么算出来
  • 企业所得税季度预缴是什么意思
  • 新准则下担保企业有哪些
  • 金融企业会计科目有哪些
  • mongodb数据查询
  • 套期保值是什么意思举个例子
  • 银行承兑汇票是商业汇票吗
  • sql server 实例
  • 代收代付的会计分录
  • 城镇土地使用税的计税依据
  • 收到预付货款用什么凭证
  • 城市维护建设税怎么算
  • 哪些增值税可以免税
  • 一般纳税人工程劳务发票税率是多少
  • 实收资本如何计算印花税及附加税
  • 房屋租赁合同税率多少
  • 生产车间的保险有哪些
  • 融资租赁本金和租金的区别
  • 小规模纳税人抵扣税控盘增值税怎么申报
  • 会计凭证装订后应当加贴封条
  • 新企业如何建帐
  • mysql跨服务器查询语句
  • window怎么操作
  • windowsxp错误提示
  • ubuntu怎么录音
  • 系统自动设置网络连接
  • linux oracle图形界面
  • 检测你的vps是不是真的
  • 系统更新到win11后还可以调回win10吗
  • wind10怎么恢复wind7
  • win7装完系统我的电脑在哪
  • win8.1取消密码
  • windows10电脑屏保怎么取消
  • win8更新80072efe
  • win8玩游戏
  • 批处理常用命令总结
  • 批处理在windows中的典型应用
  • 多媒体播放器使用方法
  • 基于springboot的毕设
  • javascript scrollLeft,scrollWidth,clientWidth,offsetWidth 完全详解
  • jquery接收后端数据
  • android中的webview
  • 不错的二本院校有哪些
  • android简单app实例
  • python语言解析
  • 出口退税需要哪些
  • 增值税防伪税控开票实训心得
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设