Geek Cloud:下载历史必应大图

写了一个垃圾脚本加上Crontab,挂到@Toyo魔改的Directory Listener,一个玩票性质的下载站就此诞生。


构成

  • 一个子域名(dl.sh.guoch.xyz)
  • 一台VPS(本服务器)
  • 逗比的Directory Listener
  • 用Crontab执行的垃圾脚本

网址

更新:已经设置新域名并加上腾讯云CDN:https://download.guoch.xyz

https://dl.sh.guoch.xyz

文件树

.
├── 201801
│   ├── 20180106.png
│   ├── 20180107.png
│   ├── 20180108.png
│   ├── 20180109.png
│   ├── 20180110.png
│   ├── 20180111.png
│   ├── 20180112.png
│   ├── 20180113.png
│   ├── 20180114.png
│   ├── 20180115.png
│   ├── 20180116.png
│   ├── 20180117.png
│   ├── 20180118.png
│   ├── 20180119.png
│   ├── 20180120.png
│   ├── 20180121.png
│   ├── 20180122.png
│   ├── 20180123.png
│   ├── 20180124.png
│   ├── 20180125.png
│   ├── 20180126.png
│   ├── 20180127.png
│   ├── 20180128.png
│   ├── 20180129.png
│   └── 20180130.png
├── 201802
│   ├── 20180201.png
│   ├── 20180202.png
│   ├── 20180203.png
│   ├── 20180204.png
│   ├── 20180205.png
│   ├── 20180206.png
│   ├── 20180207.png
│   ├── 20180208.png
│   ├── 20180209.png
│   ├── 20180210.png
│   ├── 20180211.png
│   ├── 20180212.png
│   ├── 20180213.png
│   ├── 20180214.png
│   ├── 20180215.png
│   ├── 20180216.png
│   ├── 20180217.png
│   ├── 20180218.png
│   ├── 20180219.png
│   ├── 20180220.png
│   ├── 20180221.png
│   ├── 20180222.png
│   ├── 20180223.png
│   ├── 20180224.png
│   ├── 20180225.png
│   ├── 20180226.png
│   ├── 20180227.png
│   └── 20180228.png
├── 201803
│   ├── 20180301.png
│   ├── 20180302.png
│   └── 20180303.png
├── today.png
└── zip
    ├── 201801.zip
    ├── 201802.zip
    └── 201803.zip

其中today.png是今日必应大图。更新可能有延迟。目前收录了中国站20180106至今的所有首页大图。每个月的图片都会压缩至zip文件夹下对应文件

源码

#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

#Check Root
[ $(id -u) != "0" ] && { echo "Error: You must be root to run this script"; exit 1; }

#Set Vars
DATE=$(date +%Y%m%d)
month=$(date +%Y%m)
picdir=/home/bing

#Check whether workdir exists and curl pic
if [ ! -d "${picdir}/${month}" ]; then
  mkdir ${picdir}/${month}
fi
cd ${picdir}/${month}

curl -o ${DATE}.png https://bing.guoch.xyz

#Check if processed successfully
if [ ! -d "${picdir}/${month}/${DATE}.png" ]; then
  echo Curl Success! Time: ${DATE} File:${picdir}/${month}/${DATE}.png
  else echo Curl Fail! Time: $(date)
fi

#Zip
echo Zip status:
zip -r ${picdir}/zip/${month}.zip /${picdir}/${month}/* && echo Pics of current month successfully zipped to ${picdir}/zip/${month}.zip

#Copy ${DATE}.png to today.png
cp ${picdir}/${month}/${DATE}.png ${picdir}/today.png -f

本质上调用的是本站的必应API,保存以后处理。

附上抓取必应首页大图API的PHP脚本

<?php
        $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
        if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){
                $imgurl='http://cn.bing.com'.$matches[1];
        }
        if($imgurl){
                header('Content-Type: image/JPEG');
                @ob_end_clean();
                @readfile($imgurl);
                @flush(); @ob_flush();
                exit();
        }else{
                exit('error');
        }
?>

 

2 条评论

发表评论

*