位置: 编程技术 - 正文

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 开发)

  • 物业公司停车位出租发票税率是多少钱
  • 个人所得税减除费用5000是什么意思
  • 国际避税地是什么
  • 公司向个人借款是否合法
  • 个体工商户需要交税吗?怎么交?
  • 变动成本法的计算公式有哪些
  • 机动车统一发票税率多少
  • 行政单位固定资产管理制度
  • 对方发票丢了能报销吗
  • 计提工资附什么单据
  • 董事长费用可以在公司报销吗
  • 白酒销售环节交消费税吗
  • 公司发工资是私账
  • 公司购买电脑费用怎么报销
  • 纳税人和征税对象的区别
  • 股票期权所得税率
  • 在会计上主营业务利润和营业利润有什么区别?
  • 涂料生产企业消毒方案
  • 免征文化事业建设费条件的销售额标准
  • 生产性生物资产是什么意思
  • 一般贸易和进料加工的区别是什么
  • 企业分立账务处理办法
  • 上月印花税计提多了如何冲回
  • dir852迅雷路由器
  • w10关闭
  • 价外费用含义
  • php实现分页功能的方法
  • 向国外个人支付的佣金是否缴纳个人所得税
  • 税收保全有哪些
  • 坏账损失可以做销项税转出吗
  • 蝴蝶兰的养殖方法和注意事项 盆栽蝴蝶兰烂根
  • 税法中实体从旧程序从新什么意思
  • 业务招待费财务管理制度
  • 建筑增值税税率变化
  • 长期借款和实收资本
  • php函数写法
  • php日期差
  • 弃置费用的会计处理
  • 上市公司回购股票意味着什么
  • php preg_match
  • 对公收费明细入账计入什么科目
  • html表格用法
  • php 截断
  • phpcms怎么用
  • 城市维护建设税,教育费附加,地方教育费附加
  • 离职员工个税申诉企业怎么处理
  • 只有进项税需要结转吗
  • 承兑贴现个人违法吗
  • 本年利润每个月需要结转吗
  • 公司物资借用手续
  • 税率由16%变更为13怎么算
  • 双倍余额递减法计提折旧公式
  • 商业企业购进商品的分录
  • mysql中分组
  • mysql的外键
  • mysql分区语句
  • mysql定义语句
  • win10预览版和正式版区别
  • http500内部错误
  • Windows Server 2008的NPS策略应用
  • solaris vi命令
  • centos如何查看所有用户
  • nomoreporn.exe - nomoreporn是什么进程 有什么用
  • win8 电话激活
  • win7自带解压缩
  • 晚上睡觉艾草贴肚脐
  • 安卓查看安装包
  • Formatting Long Lines 格式化多行字符的shell脚本
  • 使用css的三种方式
  • cocos2d教程
  • js运行时错误
  • js原始值有哪些
  • node.js实战
  • js实现自动定时功能
  • javascript图片
  • Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded
  • 国家税务局发票查验平台查验官网
  • 江苏叉车证查询网上查询
  • 2020年小规模纳税人普票免税政策
  • 二手房交易契税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设