当前位置: 首页 > news >正文

[nodejs] 爬虫加入并发限制并发实现痞客邦网页截图

今晚想给偶像的相册截个图,避免某一天网站挂了我想看看回忆都不行,用的是js的木偶师来爬虫台湾的部落格,效果图大概是这样,很不错

问题来了.我很贪心, 我想一次性把相册全爬了,也就是并发 ,这个人的相册有19个!!我一下子要开19个谷歌浏览器那个什么进程, 然后程序就崩了, 我就想能不能加入个限制? 每次只爬3个,3个完之后再继续.
ok,思路是这样:

1.假如有一个数组9个url(模拟9个相册的url),我按并发数切割,假如并发数是3

2.得到数据结构如下

3.然后循环这个数组, 再循环里面的小数组并添加进promiseChunk数组,用await Promise.all阻塞后面的其他切割的小数组运行,同时添加进AllChunksPromise数组,用来统计所有切割小数组完成后的时间,最后再Promise.all(把第二步的数据结构扁平为一维),在后面就可以计算得到代码执行时间
得到代码如下

结果还行,就是有点慢,毕竟后台调用浏览器...我的单核服务器cpu飙到100%

最后说下cheerio和puppeteer,这两个这两天都有用,cheerio解析静态网页很快,很适合抓数据。木偶可以执行js,这就很牛了,因为他是直接打开一个浏览器运行的,就是慢,各有优缺,优缺互补最好了

源代码已经上传github:https://github.com/DoctorTan/pixnetAlbumScreenshot

http://www.lryc.cn/news/214314.html

相关文章:

  • GEE——Publisher Data Catalogs发布者数据目录
  • 计算10的阶乘
  • 6.卷积神经网络
  • postgresql|数据库|SQL语句冲突的解决
  • overflow溢出属性、定位、前端基础之JavaScript
  • 【JS】Chapter6-Dom 获取属性操作
  • 太极培训机构展示服务预约小程序的作用如何
  • node使用path模块的基本使用
  • 我和云栖大会有个约会
  • Linux各个发行版之间的关系
  • 第一章 第一行Android代码
  • 怎样利用 AI 大模型,辅助研发管理与效能提升?
  • 聊天室的创建
  • 大数据信息抽取
  • 驱动开发11-1 编写IIC驱动-读取温湿度数据
  • 上海中优城市万豪酒店推出全新国际IP童趣主题房,独特住宿体验中国首秀
  • zsh和bash之间互相切换
  • Java - window系统快捷键大全
  • 深入理解数据结构(1)—用链表实现栈
  • Jtti:debian安装firewalld错误怎么办
  • 如何理解python中的*args和**kwargs
  • 软考之软件工程基础理论知识
  • 香港服务器不稳定的几种情况
  • 报修软件有什么用?企业如何做好设备管理与维护?
  • Go语言的键盘输入和打印输出
  • jenkins实践篇(2)—— 自动打tag的可回滚发布模式
  • golang worker channel 模式
  • 舔狗日记之好一条舔狗
  • 【地理位置识别】IP归属地应用的特点
  • 华为实验基础(2):路由器基础