位置: 编程技术 - 正文

nodejs制作爬虫实现批量下载图片(node爬取数据)

编辑:rootadmin

推荐整理分享nodejs制作爬虫实现批量下载图片(node爬取数据),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node做爬虫,node.js写爬虫,nodejs做爬虫,nodejs爬虫框架crawler,nodejs做爬虫,node.js写爬虫,node做爬虫,node.js写爬虫,内容如对您有帮助,希望把文章链接给更多的朋友!

今天想获取一大批猫的图片,然后就在流浪器搜索框中输入 猫 ,然后点击图片。就看到了一大波猫的图片: ,我在想啊,要是审查元素,一张张手动下载,多麻烦,所以打算写程序来实现。不写不知道,一写发现里面还是有很多道道的。

1. 爬取图片链接

因为之前也写过nodejs爬虫功能(参见:NodeJS制作爬虫全过程 ),所以觉得应该很简单,就用cheerio来处理dom啦,结果打印一下啥也没有,后来查看源代码:

发现 waterfall_zoom 里面空空如也,查找了一下,发现所有的数据都是写在 <script> 里面,然后动态加载到页面的,所以用cheerio.load到的页面里面其实没数据的。真实数据:

分析完毕,刷刷写代码:

2. 下载图片到本地 2.1 粗糙的方案

最初的思路很简单,简单的 fs.createWriteStream() 就能解决:

使用方式:

成功捕获一只猫!然后写了一个循环准备捕获所有猫。然而这种方式是串行的,速度很慢!下载一大批图片要花大量时间。

nodejs制作爬虫实现批量下载图片(node爬取数据)

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.总结

作为一个程序员,能用程序解决就不手动解决。每一次尝都会有新的收获。

详解Node.js开发中的express-session 什么是sessionsession是保存在服务器端的会话。session的典型应用场景是用户登录某网站之后,将其登录信息放入session,在以后的每次请求中查询相应的登

nodejs批量下载图片的实现方法 今天想获取一大批猫的图片,然后就在流浪器搜索框中输入猫,然后点击图片。就看到了一大波猫的图片:

深入理解nodejs中Express的中间件 Express是一个基于Node.js平台的web应用开发框架,在Node.js基础之上扩展了web应用开发所需要的基础功能,从而使得我们开发Web应用更加方便、更加快捷。

标签: node爬取数据

本文链接地址:https://www.jiuchutong.com/biancheng/380794.html 转载请保留说明!

上一篇:Node.JS利用PhantomJs抓取网页入门教程(nodejs怎么使用)

下一篇:详解Node.js开发中的express-session(node 开发)

  • 股东向公司借款超过一年不还
  • 增值税专用发票怎么开
  • 建筑劳务如何开三个点的发票
  • 关税消费税增值税计算公式
  • 印花税多报了几块钱税务局会找我吗
  • 金税盘如何查看开票机号
  • 一般纳税人建筑工程税率是多少
  • 土地使用权评估原则
  • 一般纳税人财务报表月报还是季报
  • 财务报表其他应付款为负数
  • 现金折扣怎么进账
  • 出口报关金额要考虑银行手续费吗
  • 建筑公司外包工程收入怎么记账
  • 长期股权投资稀释
  • 长期挂账其他应付款违反了哪项制度
  • 不是公司车可以报销油费吗
  • 购买原材料无法取得发票如何做账
  • 意外死亡公司赔偿多少标准
  • 年终奖可以分几次发吗?
  • 印花税如何进行税种认定
  • 冲红发票金额大怎么办
  • 小企业会计准则科目
  • 融资租赁和融资性售后回租的区别
  • 法院的诉讼费和保全费怎么算
  • 企业开票信息可以改吗
  • 建筑业预估成本怎么算
  • 银行代扣社保费
  • 航天金穗怎么开票
  • 法院收到诉讼费多久可以收到传票
  • 记账金额如何处理账户
  • elccest.exe是间谍广告程序吗 elccest进程有什么作用
  • rnbrcache.exe是什么意思
  • uniapp怎么运行到手机模拟器
  • php的教程
  • PHP:imagefontwidth()的用法_GD库图像处理函数
  • 企业如何申请进出口资质
  • 现金流量表 科目
  • thinkphp3.2.3
  • 固定资产进项税额怎么抵扣
  • php 输出
  • vuex存储用户信息
  • 餐饮企业原材料成本如何分析
  • 个税申报系统操作指南
  • 定额发票在哪查真伪
  • 保障金计入什么科目
  • 哪些人不要申报个税
  • python怎么自己写函数
  • static在c语言中用法
  • 短期借款属于经营活动还是筹资活动
  • 一般纳税人申报表电子版
  • 融资租赁担保余值例题
  • 招待客人有什么讲究
  • 押金和租金
  • 没有发票可以先付款吗
  • 先收票后收货
  • 土地承包费和土地租赁费收入记账
  • 金融存款利率
  • 赠送油卡需要代理吗
  • 消耗性生物资产与生产性生物资产的区别
  • 工程上第三方代表啥意思
  • 给法人交社保,不发工资可以吗
  • win10预览版21277下载
  • 微软一般什么时候活动
  • win10系统回收站在哪
  • 苹果电脑安装中国银行网银助手
  • mac安装字体方法
  • centos删除vg
  • pqv2isvc.exe - pqv2isvc是什么进程 有什么作用
  • win7 64位系统QQ自动退出重新登录提示您已登录不能重复登录的解决方法
  • win7系统安全软件
  • WIN7系统的电脑怎么运行快
  • nodejs爬取数据
  • perl中use strict
  • 右键菜单中添加文字
  • javascript:void(o)怎么解决
  • 税收分类分级管理是什么
  • 张家港市有什么好吃的美食
  • 无偿转让股权协议书范本
  • 期房交了契税就可以拿房产证了吗
  • 注册税务师条件要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设