Skip to content
返回

批量爬取哈勃望远镜在生日当天拍摄的宇宙照片

NASA公布了2019年哈勃望远镜每一天拍摄的宇宙照片(除了2月29日),由于网站在国外,而且有一些图片的清晰度不够高,所以利用爬虫爬取所有图片并且通过AI修复为 6X

5.31

5.31

9.21

9.21

2.19

2.19

3.27

3.27

不想看技术相关的直接拉到最下面查看下载地址。

​ 首先分析地址找到了data.csv,所有图片的地址都在里面。那么第一步提取其中的地址:

读取文件

const rl = readline.createInterface({
  input: fs.createReadStream(path.join(__dirname, "./data.csv")),
});

格式化地址

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(" "),
  });
});

地址格式化之后按照时间排一下顺序,然后下载就可以了

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

经过长时间的运损后把已经生成的图片进行分类,一个日期的放到一个文件夹中

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

baiduwangpan


 

上一篇
基于frp或nps的远程遥控手机实现钉钉远程打卡
下一篇
利用AI给你的小视频补帧到120 FPS(内有开车视频)