背景:有一天突然发现七牛云测试域名被回收了,有些图片显示不出来了,图片也不能直接下载,本地还没有备份。于是乎想到的办法就是打开一张张图片链接,手动保存到本地。作为一只程序🐒,这种事情自然是做不出来的,查了一堆资料都觉得麻烦,所以用自己的方式解决问题,当然也有解决方案。
想法:其实想法就是
1.登陆七牛云
2.跳转到对应的页面
3.加载完成的图片列表,并且获取全部图片的名字(因为我只有80张,所以只需要点击一次加载更多,就可以获取全部列表)
4.打开图片完整路径,下载图片到本地
使用puppeteer来解决问题
1 | const puppeteer = require('puppeteer'); |
这样就拿到了图片的名称的数组了,想到两种方式来下载
1.就使用puppeteer的截图,直接贴全部代码
1 | const puppeteer = require('puppeteer'); |
然鹅,有一些已经链接失效了,差点刚吃进去的老坛酸菜一口吐出来。
2.Node.js
1)安装request
1 | npm install request |
2)实现
1 | var fs = require('fs'); |
不过这里下载的图片有点问题,还没想到怎么解决。
3)使用canvas绘制图片,并且转成BLOB对象,再使用a标签进行下载。
一开始想使用a
标签的download
属性,然而a
标签只支持同源的URL。所以才使用这种方式。
1 |
|
参考资料:a标签