位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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 开发)

  • 已在境外缴纳的企业所得税税额 分国不分项
  • 政府工会经费收入如何做凭证
  • 领用自产产品用于职工食堂
  • 企业出现税务问题的案例
  • 小规模无票收入怎么做账
  • 加计扣除退回的所得税怎么做账
  • 当期发生的费用
  • 打官司败诉承担的费用
  • 企业将存货低价出售处理要如何做会计处理?
  • 工程基建期的工作总结
  • 经营现金流动比率公式
  • 未足额代扣代缴车船税
  • 企业接受固定资产投资
  • 预缴增值税怎么填表
  • 金税盘抵减税款分录
  • 在建工程转固定资产当月提折旧吗?
  • 其他综合收益可以转损益的情况
  • 长期零申报有什么影响
  • 收到镇级财政扶持怎么办
  • 政府补贴收入账户是什么
  • 法院的诉讼费和保全费怎么算
  • 工程施工方安全责任
  • 一般纳税人汇算清缴操作流程
  • 进口商品关税调整
  • cmd telnet命令大全
  • 工会经费,职工福利费,教育经费的扣除标准
  • 价款包括增值税税率吗
  • 公司多交的公积金能退吗
  • 写一段简单的自我介绍
  • 收到对方公司开的发票怎么做账
  • 年终奖是多发一个月工资吗
  • php stristr函数
  • 柏林亚历山大广场1980
  • 存货盘盈如何记账
  • css搜索框代码怎么写
  • 我国中小企业成本管理现状
  • 餐饮企业原材料成本如何分析
  • python uiautomator2的点击操作
  • 什么是公司帐户
  • 配送中心适合哪种类型的企业
  • 政府专项补贴税收
  • 工程结算如何做会计分录
  • 百旺连接服务器失败,是否使用离线文件进行更新
  • 快递费报销要明细吗
  • 印花税不减免
  • sqlserver2005使用
  • mysql1290报错
  • 自产产品对外捐赠要确认收入吗
  • 房产税是怎么样
  • 评估增值净利润调减
  • 购买设备分期付款凭证怎么做
  • 单位的车辆
  • 域名费计入哪个科目
  • 应交税费中应交税金包含个税吗
  • 装修公司开劳务费怎么选择税控编码
  • 资产处置费用是资产类科目吗
  • 总公司中标走子公司账户违法吗
  • 什么是盈余公积和资本公积的区别
  • 知识经济对会计的影响论文
  • airdrop怎么用?
  • win8.1操作系统关闭驱动数字签名
  • w7定时自动关机
  • winxp教程
  • 从此学会隐藏悲伤全文
  • linux中wc命令的用法
  • windows7日文版改中文
  • 紧跟潮流的句子
  • 列举linux常用的几个命令
  • win8.1 安装ie10
  • linux常用命令查询
  • javascript中attribute和property的区别详解
  • vue.js作用
  • 防止shell命令注入
  • jquery正则表达式的用法
  • java 视频教程
  • 1、BluetoothChat之BluetoothChat.java
  • django教程推荐
  • javascript 默认参数
  • 安卓app控件
  • 宪法宣誓仪式流程图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号