关于壁纸API

/ 1评 / 0

我一直是一个壁纸收藏控

我也是收集了很多的壁纸,这个帖子也有分享:https://www.fxxkcar.com/dtl.php?id=4

但是最近不太满足与去手动收集一些壁纸,于是就找了一些API。

一个是孟坤再用的:
http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=getAppsByOrder&order=create_time&start={$start}&count={$count}&from=360chrome

这个是360浏览器的。详细可以看孟坤的网站:http://lab.mkblog.cn/wallpaper/

这个壁纸更新很频繁,质量也很高,但是缺点就是,不支持https。

如果放在你的网站下,即便你是支持https的站点,也会提示不安全

于是乎我又找到了下面这个api:http://yywallpaper.top/chosen/picture/1/30?_=1573741611542

站点是这个:http://yywallpaper.top/

这个倒是都支持https,但是唯一的缺点就是,这个站更新的太慢了,好几天不更新的情况也有。

不太能满足与我。

包括微软的bing壁纸:http://cn.bing.com/HPImageArchive.aspx?format=js&idx={$start}&n={$count}

每天也就更新一张,属实不能满足。

所以我就找到了这个地址:https://wallhaven.cc/random?seed=ff

哇!!!随机壁纸!而且支持https

但是加载速度不是那么快,不过还能接受。

但是这个站点可没有API提供的。

于是我干脆利用爬虫的一套技能。$_page= file_get_contents("https://wallhaven.cc/random?seed=".generateRandomString());

先拿到页面,再用正则匹配到图片。然后替换图片的地址为高清图片。

比如:https://th.wallhaven.cc/small/nr/nrkmp7.jpg

替换成为:https://w.wallhaven.cc/full/nr/wallhaven-nrkmp7.jpg

preg_match_all('/<figure ([\s\S]*?)<\/figure>/', $page, $imagesDomList);
for($i=0;$i<count($imagesDomList[0]);$i++){
    $imagesUrl=array();
    preg_match('/data-src="([\s\S]*?)" src=/', $imagesDomList[0][$i],$imagesUrl);
    $url=$imagesUrl[1];
    $url=str_replace("https://th","https://w",$url);
    $url=str_replace("/small/","/full/",$url);
    $url=str_replace(basename($url),"wallhaven-".basename($url),$url);
    if(preg_match('/<span>PNG<\/span>/', $imagesDomList[0][$i])){
        $url=str_replace(".jpg",".png",$url);
    }
    $_imagesList[$i]=$url;
} 

于是乎就成了

但是我现在自己做了一个缓存,每10分钟才会去重新获取一次。

这个网站的图片得每秒加载一个,还行,每天上来可以看到一些新的壁纸,找到好的就自己存来了。挺棒的!

11.26更新:又找到一个支持https的API
https://infinity-api.infinitynewtab.com/get-wallpaper?page=0

感觉还可以,看看更新速度咋样

  1. 免费获取批量iPhone定制壁纸微信小程序搜索:Ben屋壁纸

发表评论

邮箱地址不会被公开。 必填项已用*标注