使用Python获取bing壁纸接口

原文地址–>点击进入阅读

注意:该接口和代码仅供学习使用!请勿将传回的壁纸用于非法用途!请尊重版权!树立版权意识!


由于读者自身行为导致的侵权,作者概不负责!


Bing壁纸

  • Bing的壁纸是每天更换的,而且更换的壁纸都很漂亮,而如何把它变成自己的博客幕布呢?于是想到做一个Bing壁纸的接口。
  • 注:如果你不想折腾,那你可以直接使用我提供的接口:https://bingapi.littlewith.tk/?id=1
  • Bing在官方确实有给出具体的接口:网址为:http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
  • 官方接口返回的是json数据:
{
  "images": [
    {
      "startdate": "20221031",
      "fullstartdate": "202210310700",
      "enddate": "20221101",
      "url": "/th?id=OHR.HohenzollernHechingen_ROW5987672369_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
      "urlbase": "/th?id=OHR.HohenzollernHechingen_ROW5987672369",
      "copyright": "Hohenzollern Castle, Swabian Alps, Baden-Württemberg, Germany (© Cornelia Dorr/eStock Photo)",
      "copyrightlink": "https://www.bing.com/search?q=hohenzollern+castle+wiki&form=hpcapt",
      "title": "Info",
      "quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20221031_HohenzollernHechingen%22&FORM=HPQUIZ",
      "wp": true,
      "hsh": "99656c4ae8b11500b6806b76d858a527",
      "drk": 1,
      "top": 1,
      "bot": 1,
      "hs": []
    }
  ],
  "tooltips": {
    "loading": "正在加载...",
    "previous": "上一个图像",
    "next": "下一个图像",
    "walle": "此图片不能下载用作壁纸。",
    "walls": "下载今日美图。仅限用作桌面壁纸。"
  }
}
  • 接口中包含着今日壁纸的信息"url": "/th?id=OHR.HohenzollernHechingen_ROW5987672369_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp"

制作的Python程序来获取美图

  • 原理:使用requests模块获取数据后,进行字符串的拼接形成可访问的最终图片网址,再次通过requests请求图片缓存,最后通过flask传回获取到的数据。

  • 最终实现的源码如下:

  • 第1个文件

#!/usr/bin/getpaper.py
import requests
import time
import json
import wget

def get_json(url):
    headers = {
        'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
    }
    resp = requests.get(url=url,headers=headers)
    jsoned = json.loads(resp.content.decode("utf-8"))
    finalu = jsoned['images'][0]['url']
    return "https://www.bing.com" + finalu
    pass

def get_dir(content):
    filename = wget.download(url=content, out='./' + str(int((time.time()))) + '.jpg')
    #filenamed = filename.split("/")
    return filename
    pass

def get_data(url):
    headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
    }
    respond = requests.get(url=url, headers=headers)
    return respond.content
    pass

def done():
    content = get_json("https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1")
    #result = get_dir(content)
    # result里面为文件路径以及文件名字
    result = get_data(content)
    return result
    pass
  • 第2个文件
#!/usr/bin/webmain.py
from flask import *
import flask
import getpaper
import os
app = flask.Flask(__name__)

@app.route('/')
def back():
    filename = getpaper.done()
    #image = open(filename, "rb+")
    resp = Response(filename, mimetype="image/jpg")
    return resp

if __name__=="__main__":
    app.run(host="0.0.0.0", port=4321, debug=True)
  • 请将两个文件放在同一个目录,运行webmain.py中的内容

  • 请勿将本程序运用于非法用途!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值