网站封面用的居然是必应每日一图
我最喜欢干的事情之一,就是把锅全都丢给用户端。只要能不在服务端解决就不在服务端,就算要在服务端也不要在我的服务端,桀桀桀桀桀~
就算本站还没有什么流量,但归根到底首页封面的图片应该是加载次数最多的了。正好我自己的壁纸也比较喜欢用必应的每日一图(这个是直接在微软商店里找的必应壁纸这个应用实现的),干脆就也拿来当封面好了。
要获取必应每日一图很简单,必应直接就给出了接口:
1 | https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN |
可以看到后面有几个参数:
format:可以返回json(js)或xmlidx:0代表今天,1代表昨天,最多能到7,也就是一周前n:一次返回的壁纸数量,最多是8mkt:市场/区域
但是如果在前端用JavaScript调用API的话,会触发浏览器的跨域资源共享(Cross-origin resource sharing, CORS)错误。这个是为了防止恶意网站在用户不知情的情况下,直接调用其他网站的接口并窃取敏感数据而设置的,用户端除非用了魔改的浏览器也无法轻易跳过。似乎是有提供可以跳过防御的服务存在,但最好的解决方案还是在后端调用并存储。
还好返回的结果只是包含着图片url的json而不是图片本身,不然到头来还是要我的服务端来发图片给用户。先来看看json的内容吧,下面是我设置的每天同步的当日图片对应的json:
为了动态显示这块代码块的格式我还得再引入highlight.js,真是头疼。而且github的高光风格还不匹配夜间模式,只能祈祷看到这篇文章的你正在用日间模式了。
可以看到只要在里面的url前面加上https://www.bing.com就是我们要的图片url了。里面还有其他的一些无聊内容,甚至可以拿来搓一个卡片或者小组件。
每天同步这个json也很简单,我是用的python的requests包:
1 | import requests |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小林的小站!



