首页 > 编程语言 >使用Python下载Bing每日一图并设置为壁纸

使用Python下载Bing每日一图并设置为壁纸

时间:2024-07-08 17:42:03浏览次数:14  
标签:Python Bing response url print 壁纸 save 一图 image

简介

Bing搜索引擎每天都会展示一张精美的图片,这些图片不仅美丽,而且常常包含有趣的信息。想象一下,每天打开电脑,都能看到这样的美景,是不是很棒呢?本文将介绍如何使用Python脚本自动化下载Bing每日一图,并将其设置为我们的桌面壁纸。

环境准备

在开始之前,请确保你的计算机上安装了Python。此外,我们还需要安装requests库,它是一个简单易用的HTTP库,用于发送HTTP请求。可以通过以下命令安装:

pip install requests

获取Bing图片信息

Bing提供了一个API端点,我们可以通过它获取每日一图的信息。请求该端点并解析返回的JSON数据,我们可以得到图片的URL。
接口地址为
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN
返回如下

    "images": [
        {
            "startdate": "20240707",
            "fullstartdate": "202407071600",
            "enddate": "20240708",
            "url": "/th?id=OHR.NorwayBlueberries_ZH-CN7643097235_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
            "urlbase": "/th?id=OHR.NorwayBlueberries_ZH-CN7643097235",
            "copyright": "野生蓝莓 (© Baac3nes/Getty Images)",
            "copyrightlink": "https://www.bing.com/search?q=%E8%93%9D%E8%8E%93&form=hpcapt&mkt=zh-cn",
            "title": "一剂抗氧化剂",
            "quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20240707_NorwayBlueberries%22&FORM=HPQUIZ",
            "wp": true,
            "hsh": "e7f4b629c0f148a98c69665806ab3e12",
            "drk": 1,
            "top": 1,
            "bot": 1,
            "hs": [

            ]
        }
    ],
    "tooltips": {
        "loading": "正在加载...",
        "previous": "上一个图像",
        "next": "下一个图像",
        "walle": "此图片不能下载用作壁纸。",
        "walls": "下载今日美图。仅限用作桌面壁纸。"
    }
}

其中图片的地址就是 "url" 部分,前面要加上 域名 "https://cn.bing.com",
本例中就是
https://cn.bing.com/th?id=OHR.NorwayBlueberries_ZH-CN7643097235_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp

Python脚本编写

下面是一个简单的Python脚本,用于下载Bing每日一图并设置为壁纸。

    api_url = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"
    response = requests.get(api_url)
    data = response.json()
    print(f"Bing 接口返回 : {data}")

下载图片

使用requests库,我们可以轻松地将图片保存到本地。

    # 下载图片并保存
    image_url = "https://cn.bing.com" + image_json['images'][0]['url']
    response = requests.get(image_url)
    if response.status_code == 200:
        with open(save_path, 'wb') as f:
            f.write(response.content)
        print(f"图片已下载到: {save_path}")
    else:
        print("图片下载失败,状态码:", response.status_code)

设置壁纸

在Windows上,我们可以使用ctypes库来调用系统API设置壁纸。

    # 设置壁纸
    try:
        ctypes.windll.user32.SystemParametersInfoW(20, 0, save_path, 3)
        print("壁纸设置成功")
    except Exception as e:
        print("设置壁纸失败:", e)

完整代码

import os
import requests
import ctypes

def get_full_image_url():
    api_url = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"
    response = requests.get(api_url)
    data = response.json()
    print(f"Bing 接口返回 : {data}")
    return data

def download_and_set_wallpaper(image_json):
    # 获取当前登录的用户名
    username = os.getlogin()
    # 构造保存路径和文件名
    save_dir = "C:\\Users\\" + username + "\\Pictures\\WallPaper"
    print(f"保存路径: {save_dir}")
    
    os.makedirs(save_dir, exist_ok=True)
    file_name = image_json['images'][0]['startdate'] + ".jpg"
    save_path = os.path.join(save_dir, file_name)
    
    # 下载图片并保存
    image_url = "https://cn.bing.com" + image_json['images'][0]['url']
    response = requests.get(image_url)
    if response.status_code == 200:
        with open(save_path, 'wb') as f:
            f.write(response.content)
        print(f"图片已下载到: {save_path}")
    else:
        print("图片下载失败,状态码:", response.status_code)
    
    # 设置壁纸
    try:
        ctypes.windll.user32.SystemParametersInfoW(20, 0, save_path, 3)
        print("壁纸设置成功")
    except Exception as e:
        print("设置壁纸失败:", e)

# 主程序
if __name__ == "__main__":
    image_json = get_full_image_url()
    download_and_set_wallpaper(image_json)

结语

通过本文的介绍,你已经学会了如何使用Python来自动化下载Bing每日一图并设置为壁纸。这是一个有趣且实用的项目,可以作为学习Python自动化脚本的一个很好的例子。

标签:Python,Bing,response,url,print,壁纸,save,一图,image
From: https://www.cnblogs.com/txw1958/p/18290448/bing-picture-wallpaper

相关文章

  • Python OpenCv对规则物体进行实时检测
    前言很多情况需要对物体进行检测,常规的方法也有很多种。但是检测出来的边缘一般都是非常多,结果也是非常杂乱的,显然这种结果不是我们想要的。如果颜色相较于背景非常鲜艳的可以调节hsv阈值再进行检测,如果是一直在运动的物体可以通过帧差法进行物体检测,还有很多高深的算法也可以进......
  • python logger 使用记录
    1.简单使用importlogging#基本设置#如果没有设置,则可以使用该设置用于显示logging.basicConfig(level='DEBUG',datefmt='%Y-%m-%d%H:%M:%S',format='%(asctime)s[%(name)s]%(levelname)s%(message)s')logger=logging.getLogger(......
  • 【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践
    随着航空、航天、近地空间遥感平台的持续发展,遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升,呈现出大数据特征。这为相关研究带来了新机遇,但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域、多尺度海量遥感数据处理需求。为解......
  • Python热门面试题三
    Python中的pass语句有什么作用?在Python中,pass语句是一个空操作(NOP,nooperation);它什么也不做,只作为一个占位符。其主要作用是在语法上需要语句的地方,但程序执行时又不需要执行任何操作时使用。pass语句可以用在函数的定义中、条件语句的分支里、循环结构中或者任何需要语......
  • 利用Python进行数据分析PDF下载经典数据分享推荐
    本书由Pythonpandas项目创始人WesMcKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。......
  • python+anaconda环境搭建
    一:下载安装1、安装anacondaanaconda官网2、安装pycharmpycharm官网二:配置环境1、找到anaconda安装位置在系统环境变量中添加如下信息打开DOS框,输入conda--version,出现如下信息说明配置成功三:创建虚拟环境1、打开DOS框;输入(name表示自己虚拟环境的名称;version表示......
  • python爬虫——爬取12306火车票信息
    前提准备:requests、pandas、threading等第三方库的导入(未下载的先进行下载)导入库代码fromthreadingimportThread#多线程库importrequestsimportpandasaspdimportjson#json库完整步骤1.在网页找到需要的数据(1)任意输入出发地——目的地——日期,点击......
  • python:使用matplotlib库绘制图像(一)
    作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!一、Matplotlib图像基础1.1 基本绘图实例:sin、cos函数图代码详解:1.frompylabimport*:导入pylab库中所有函数和变量。pyla......
  • 人脸识别与美颜算法实战:基于Python、机器学习与深度学习
    代码和pdf书等:GitHub-guozhe1992/read引言与基础知识:介绍人脸识别与美颜算法的基本概念、应用场景以及Python编程和机器学习的基础知识。视频图像处理技术:详细讲解基于Anaconda和PyCharm的环境搭建,以及视频图像处理的基础技术,如图像读取、显示、保存和格式转换等。抖音特效......
  • python模型文件转换,将.pth转换为.onnx
    为了方便在C#项目中引用onnx文件,于是需要将pth模型文件转换为onnx类型。转换的模型项目地址是:https://github.com/xuebinqin/U-2-Net,以下为python的示例代码:1importtorch2importsys3importos4model_dir=os.path.join(os.path.dirname(__file__),'model')5sys......