惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
S
Securelist
U
Unit 42
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
T
Tenable Blog
The Hacker News
The Hacker News
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
博客园_首页
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
V
Vulnerabilities – Threatpost
A
Arctic Wolf
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
V
Visual Studio Blog
月光博客
月光博客
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

Minecraft-Sep

还没有域名建站?2026年最新免费域名推荐 | Minecraft-Sep 还没有域名建站?2026年最新免费域名推荐 | Sep's Blog 搞机日记2——华为儿童手表3X优化 | Minecraft-Sep 搞机日记2——华为儿童手表3X优化 | Sep's Blog Windows实用软件推荐 | Minecraft-Sep Windows实用软件推荐 | Sep's Blog 搞机日记——华为儿童手表3X破解 | Minecraft-Sep 搞机日记——华为儿童手表3X破解 | Sep's Blog 提升效率必备Windows神器PowerToys | Minecraft-Sep 提升效率必备Windows神器PowerToys | Sep's Blog 【Hexo】如何提高静态博客访问速度?Vercel+Cloudflare+CDN让你的网站速度飞起! | Minecraft-Sep 【Hexo】如何提高静态博客访问速度?Vercel+Cloudflare+CDN让你的网站速度飞起! | Sep's Blog Cloudflare Pages+Telegraph搭建简易图床 | Minecraft-Sep Cloudflare Pages+Telegraph搭建简易图床 | Sep's Blog 【Hexo】告别缓慢的 Github Pages,来试试更好的 Vercel 吧! 【Hexo】告别缓慢的 Github Pages,来试试更好的 Vercel 吧! 什么是DDos?它会对博客造成什么威胁?DDos攻击原理与防护方法 | Minecraft-Sep 什么是DDos?它会对博客造成什么威胁?DDos攻击原理与防护方法 | Sep's Blog 202409博客月报 | 第一期 | Minecraft-Sep 202409博客月报 | 第一期 | Sep's Blog 关于博客评论更换的通知 | Minecraft-Sep 关于博客评论更换的通知 | Sep's Blog 免费小型数据库——Vercel Blob初体验 | Minecraft-Sep 免费小型数据库——Vercel Blob初体验 | Sep's Blog 如何让你的博客更丰富?hexo常见插件推荐 | Minecraft-Sep 如何让你的博客更丰富?hexo常见插件推荐 | Sep's Blog 博客一周年记 | Minecraft-Sep 博客一周年记 | Sep's Blog 免费域名怎么弄?常见免费域名指南 | Minecraft-Sep 免费域名怎么弄?常见免费域名指南 | Sep's Blog 利用Cloudflare Workers搭建镜像网站 | Minecraft-Sep 利用Cloudflare Workers搭建镜像网站 | Sep's Blog API构建①——Bing每日一图接口 | Minecraft-Sep 【Hexo】Twikoo--评论系统的添加(2) | Minecraft-Sep 【Hexo】Twikoo--评论系统的添加(2) | Sep's Blog 【Hexo】 Waline--评论系统的添加(1) | Minecraft-Sep 【Hexo】 Waline--评论系统的添加(1) | Sep's Blog 【Hexo】Hexo+Github搭建个人博客 | Minecraft-Sep 【Hexo】Hexo+Github搭建个人博客 | Sep's Blog 【HTML】利用localstrange临时存储数据 | Minecraft-Sep 【HTML】利用localstrange临时存储数据 | Sep's Blog
API构建①——Bing每日一图接口 | Sep's Blog
标签 · 2024-07-31 · via Minecraft-Sep

前言

众所周知,bing的每日一图都特别beautiful,在我们的blog里也起到了很好的装饰作用。那就有人问了,HOW TO GET IT?今天我就来教你们构建属于自己的bing每日一图API!

实践

Part1. 了解bing每日一图链接规律

就拿今天的做例子:https://cn.bing.com/th?id=OHR.HoodoosBryce_ZH-CN8398575172_1920x1080.jpg

获取到的json内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"images": [
{
"startdate": "20240730",
"fullstartdate": "202407301600",
"enddate": "20240731",
"url": "/th?id=OHR.HoodoosBryce_ZH-CN8398575172_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
"urlbase": "/th?id=OHR.HoodoosBryce_ZH-CN8398575172",
"copyright": "石林,日落点,布莱斯峡谷国家公园,犹他州,美国 (© Tim Fitzharris/Minden Pictures)",
"copyrightlink": "https://www.bing.com/search?q=%E5%B8%83%E8%8E%B1%E6%96%AF%E5%B3%A1%E8%B0%B7%E5%9B%BD%E5%AE%B6%E5%85%AC%E5%9B%AD&form=hpcapt&mkt=zh-cn",
"title": "这里有“胡图”吗?",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20240730_HoodoosBryce%22&FORM=HPQUIZ",
"wp": true,
"hsh": "1cabac064d004edabc8b0d2e375052ae",
"drk": 1,
"top": 1,
"bot": 1,
"hs": []
}
],
"tooltips": {
"loading": "正在加载...",
"previous": "上一个图像",
"next": "下一个图像",
"walle": "此图片不能下载用作壁纸。",
"walls": "下载今日美图。仅限用作桌面壁纸。"
}
}

我们就可以猜出其中的规律了:

https://cn.bing.com + 上面的”url”,构成了该链接。

Part2. 构建API

我们使用GET方法构建我们的API,名称为bing.php,也可以从 https://mc-sep.js.cool/api/bing.php 下载!

  1. 判断是否是随机调用(我们的API可以指定日期)
1
2
3
<?php
if ($_GET['rand']==='true') {
$gettime = rand(-1,7);
  1. 如果不是,则指定日期
1
2
3
4
5
6
7
8
else{
$gettimebase = $_GET['day'];
if (empty($gettimebase)) {
$gettime = 0;
}else{
$gettime = $gettimebase;
}
}
  1. 获取Bing Json详细信息,转换为PHP数组,再提取基础URL
1
2
3
$json_string = file_get_contents('https://www.bing.com/HPImageArchive.aspx?format=js&idx='.$gettime.'&n=1');
$data = json_decode($json_string);
$imgurlbase = "https://www.bing.com".$data->{"images"}[0]->{"urlbase"};
  1. 判断是否制定了图片大小,否则默认1920 * 1080
1
2
3
4
5
if (empty($imgsizebase)){
$imgsize = "1920x1080";
}else{
$imgsize = $imgsizebase;
}
  1. 建立完整URL
1
$imgurl = $imgurlbase."_".$imgsize.".jpg";
  1. 获取其他信息并判断是否需要
1
2
3
4
5
6
$imgtime = $data->{"images"}[0]->{"startdate"};
$imgtitle = $data->{"images"}[0]->{"copyright"};
$imglink = $data->{"images"}[0]->{"copyrightlink"};
if ($_GET['info']==='true') {
echo "{title:".$imgtitle.",url:".$imgurl.",link:".$imglink.",time:".$imgtime."}";
}
  1. 不是则直接返回
1
2
3
else{
header("Location: $imgurl");
}
  1. 完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
if ($_GET['rand']==='true') {
$gettime = rand(-1,7);
}else{
$gettimebase = $_GET['day'];
if (empty($gettimebase)) {
$gettime = 0;
}else{
$gettime = $gettimebase;
}
}
$json_string = file_get_contents('https://www.bing.com/HPImageArchive.aspx?format=js&idx='.$gettime.'&n=1');
$data = json_decode($json_string);
$imgurlbase = "https://www.bing.com".$data->{"images"}[0]->{"urlbase"};
$imgsizebase = $_GET['size'];
if (empty($imgsizebase)){
$imgsize = "1920x1080";
}else{
$imgsize = $imgsizebase;
}
$imgurl = $imgurlbase."_".$imgsize.".jpg";
$imgtime = $data->{"images"}[0]->{"startdate"};
$imgtitle = $data->{"images"}[0]->{"copyright"};
$imglink = $data->{"images"}[0]->{"copyrightlink"};
if ($_GET['info']==='true') {
echo "{title:".$imgtitle.",url:".$imgurl.",link:".$imglink.",time:".$imgtime."}";
}else{
header("Location: $imgurl");
}

总结

可以去参考一下API接口:

版权所有©MC-Sep 2024.

MCSep