NASA公布了2019年哈勃望远镜每一天拍摄的宇宙照片(除了2月29日),由于网站在国外,而且有一些图片的清晰度不够高,所以利用爬虫爬取所有图片并且通过AI
修复为 6X。
5.31
9.21
2.19
3.27
不想看技术相关的直接拉到最下面查看下载地址。
首先分析地址找到了data.csv,所有图片的地址都在里面。那么第一步提取其中的地址:
读取文件
1 2 3
| const rl = readline.createInterface({ input: fs.createReadStream(path.join(__dirname, "./data.csv")), });
|
格式化地址
1 2 3 4 5 6 7 8 9 10 11 12
| rl.on("line", (line) => { const res = line.split(","); const len = res.length; const date = new Date(res[0]); list.push({ name: `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`, title: res[2], shootingDate: res[len - 1], url: `https://imagine.gsfc.nasa.gov/hst_bday/images/${res[1]}`, directions: res.slice(3, len - 2).join(" "), }); });
|
地址格式化之后按照时间排一下顺序,然后下载就可以了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| rl.on("close", function () { list.splice(0, 1); list.sort((t1) => (t2) => new Date(t1).getTime() - new Date(t2).getTime()); fs.writeFileSync(path.join(__dirname, "res.json"), JSON.stringify(list)); const finishDownloadList = fs.readdirSync(path.join(__dirname, "download")); list .filter((item) => !finishDownloadList.includes(item.name)) .forEach(async (item) => { console.log(item.name); console.log(item.url); await download(item.url, path.join(__dirname, "download", item.name), { filename: `${item.name}-${item.title}${path.extname(item.url)}`, }); }); });
|
然后使用waifu2x-caffe进行图片的放大修复。在这我自定义添加后缀为-ai
。
经过长时间的运损后把已经生成的图片进行分类,一个日期的放到一个文件夹中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| files.forEach((file) => { const arr = file.split("-"); const dir = arr.slice(0, 3).join("-"); const name = arr.slice(3).join("_"); const fileName = `${dir}_${name}`; fs.renameSync( path.resolve(__dirname, "download", "1", file), path.resolve(__dirname, "download", "1", fileName) ); const p = path.resolve(__dirname, "download", dir); fs.ensureDirSync(p); fs.copyFileSync( path.resolve(__dirname, "download", "1", fileName), path.resolve(p, fileName) ); });
|
这样我们就获取了NASA
公布的生日当天哈勃望远镜拍摄的照片。
技术细节基本没人看,所以在这给大家提供现成的下载地址:
链接:https://pan.baidu.com/s/1lo__x7hqEydZKtsBZh9-HA
提取码:afum
压缩包解压密码均为:2077tech.com