位置: 编程技术 - 正文

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

  • 退税怎么做账务处理,需要交什么税
  • 企业所得税的纳税人有哪些简答题
  • 长期股权投资在哪个报表里
  • 对账结算流程
  • 利息税减少
  • 预付卡发票可以报销吗?
  • 事业单位职工福利费范围有哪些
  • 企业所得税汇算清缴退税账务处理
  • 个人借款到期未还诉讼时效
  • 公司委托其他公司为员工代缴社保公积金
  • 一般纳税人年审证明
  • 暂估成本一直拿不到发票
  • 收到外单位奖励怎么回复
  • 物流公司进项票多了,可以帮人开票吗
  • 外购货物评估减值要转出进项税额吗?
  • 总账每个月都要结账吗
  • 信息化生产力是指什么
  • 开具红字发票后如何在申报表中填写?
  • 在linux2.4.0版本中
  • macos怎么看
  • 8款应用
  • 苹果手机清理内存怎么清理微信内存
  • 收到某公司的钱的会计分录
  • php aes
  • 税务没给核印花税,企业用交吗
  • 开发票的零税率和免税有什么区别
  • 已缴款未入库是扣款成功了吗
  • display version命令
  • laravel 自定义guard
  • 无形资产法
  • 加油票发票抬头开错了
  • 出租固定资产的租金收入
  • 什么经营范围可以开门票发票
  • 如何免费下载win10 家庭版
  • js中定义变量关键词是
  • 公司购入的发明产品
  • 公司处置汽车
  • 残疾人保障金所属期怎么填
  • 公司用车租赁
  • 记账王怎么打开以前的账套
  • mysql命令行删除库中的所有表
  • 注册资本金收到之后可以转挂往来款吗
  • 接受捐赠要确认收入吗
  • 金融资产主要包括
  • 企业清算未分配利润怎么交税
  • 提取公积金收手续费吗
  • 自用房产税计入什么科目
  • 汽修厂印花税怎么交
  • 什么情况下投资乘数最大
  • 固定资产原值的构成内容是
  • 应付职工薪酬讲解
  • 行权期行权条件成就什么意思
  • 工商注册资本什么意思
  • mysql内网访问
  • airdrop怎么用?
  • linux 使用技巧
  • xp系统弹出广告怎么处理
  • bios cmos设置
  • win8 start menu
  • ie11怎么打开ie8
  • 0x80070718配额不足
  • win8系统如何查看电脑内存
  • ubuntu 14.04.6
  • xp系统电源设置在哪里
  • win10正式版激活码
  • win8快捷键设置在哪里设置
  • 查看rpm包含的内容
  • win7开机提示由于启动计算机时出现页面文件
  • javascript ts
  • 更改uac设置在哪
  • shutdown命令不能运行
  • 在dos中文件是以什么目录结构
  • android opengl绘图
  • 基于javascript的毕业设计
  • jquery页面跳转的方法
  • js拖拽生成页面
  • 'd:skin' 开头的无效内容。此处不应含有子元素。
  • android解压app
  • js中面向对象编程
  • 打单子的打印机能否打a4的纸
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设