位置: 编程技术 - 正文

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

  • 施工单位缴税实例
  • 火车票丢失怎么补办
  • 制作费发票明细怎么填
  • 开票地址开错有什么后果
  • 小规模纳税人季度超过45万怎么交税
  • 劳务成本科目
  • 营改增建筑安装服务发票要求
  • 调试阶段是什么意思
  • 售后回租的实际操作流程
  • 建筑企业跨地区
  • 收取的职工房租如何入账
  • 图书出版费开票怎么开
  • 申报营业额怎么填
  • 跨地区建筑安装企业个人所得税征收方式申请表
  • 收汇结汇的账务处理
  • 免税发票上税率是多少
  • 基金会可以投资企业吗
  • 多缴税款退回及退回
  • 对方开具红字发票过来怎么做进项税转出
  • 一般个体户核定税率多少
  • 一般纳税人企业所得税税率多少
  • 每月结转本年利润会计分录
  • 国税地税纳税申报
  • 或有负债披露原则
  • 企业对外捐赠现金的会计处理
  • 剩余材料出售
  • 其他应收款会计科目
  • 交易性金融资产的交易费用计入哪里
  • 各部门领料情况,a产品耗用甲材料3200元
  • 收到厂家返利怎么做分录
  • 如何调整往来账款
  • 单位价值5000元二手设备怎么算
  • 本月发生的费用,下月取得发票,怎么做账
  • 一个集团的分公司干过活再去另一个分公司会被发现吗
  • php字符串定义的三种方式
  • 小规模纳税人没有进项发票怎么办
  • 工程施工下的间接费用下有什么科目
  • mac完全安装windows
  • java pdf生成工具
  • vue动态绑定背景图
  • php获取服务器ip和客户端ip的方法
  • 帝国cms配置数据库
  • 补发工资账务处理
  • 小型微利企业符合条件的有
  • 营业外支出贷方在利润表怎么体现
  • 企业之间的借款计入什么科目
  • 暂估库存商品计算怎么算
  • sql2008r2如何使用
  • 待抵扣进项税的限额是什么
  • 计提折旧的固定资产平均总值怎么算
  • 哪些项目需要交印花税
  • 保函分为几种
  • 购税盘怎么做会计分录
  • 企业减资要交税嘛
  • 跨年红字发票账务处理
  • 公司破产账务处理
  • 有限合伙企业的特征
  • 货款折扣的账务处理
  • 建账的三个基本步骤
  • 用SELECT... INTO OUTFILE语句导出MySQL数据的教程
  • solaris syslog
  • macbookpro蓝牙找不到
  • 电脑安装了安卓系统没用
  • 如何隐藏应用软件
  • win8系统停止服务
  • windows10稳定版本
  • win10系统无线网络连接在哪
  • cocos2djs
  • shell脚本实现自动化巡检报警发送邮箱
  • 表格指定高度是多少
  • vue+vue-validator 表单验证功能的实现代码
  • linux 消息队列 系统参数
  • JavaScript中Number.MAX_VALUE属性的使用方法
  • jquery 动态添加列表元素
  • jquery获取某个属性的值
  • 简洁实用的公司治理机制
  • js tab切换
  • 浙江省医保改革方案2022
  • 12123怎么上传交强险
  • 云南省税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设