我一直是一个壁纸收藏控
我也是收集了很多的壁纸,这个帖子也有分享: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
感觉还可以,看看更新速度咋样
免费获取批量iPhone定制壁纸微信小程序搜索:Ben屋壁纸