[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

相关推荐
梅孔立6 天前
Fiddler 工具安装抓包 教程 https
爬虫
feasibility.6 天前
MediaCrawler媒体采集平台安装与使用
爬虫·抖音·小红书·微博·bili
Patrick在香港7 天前
Claude 工具调用返回空:8 次失败里只有 1 次状态码不对,其余全带 200
爬虫·python·api·claude·香港
小静AI工程实验室8 天前
Python 爬虫中文乱码排查:严格解码、UTF-8 BOM 与 JSON 转义的 12 项实验
字符编码·爬虫·python
咖啡星人k8 天前
从自建爬虫到托管工具:数据采集选型对照表
爬虫·数据采集·mcp
电商API_180079052479 天前
拍照找同款是怎么实现的?淘宝以图搜图接口 item_search_img 对接实战
大数据·爬虫·数据挖掘·数据分析·代采api
Patrick在香港9 天前
Python 抓 0.91 GB 香港法例:Agent 的进度该写进磁盘,不是写进上下文
爬虫·python·api·claude·香港
Experience-摆渡9 天前
开源RAG知识库WeKnora深度调研:让知识自己长成体系
爬虫·docker·开源·rag
孙启超10 天前
【AI开发之Rust】第 7 课:错误处理 —— panic、Result 与 `?`
人工智能·分布式·后端·爬虫·spring cloud·架构·rust
该逃避避10 天前
IP代理类型介绍:住宅IP、机房IP、移动IP等区别与选择
爬虫