Python電腦桌面每天更新壁紙

bing網站的背景圖片每天都更換,我的電腦桌面也想每天都換成它的背景圖片,如何操作呢!接下來就抓取一下bing網站的背景圖片寫一個每天都更換壁紙的小dome。

環境配置:

  1. python3.6.5
  2. pycharm
  3. python pip安裝 requests pywin32  pyinstaller

bing網站截取背景圖片地址:

  • http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US
  • 請求的信息如下:
  • 圖片信息在url參數裏它的結構爲josn格式裏面有一個list然後是一個字典由此可以解析爲:
  • bing = requests.get(url="http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US").json()
    i = bing['images'][0]['url']
  • 得到一個背景地址,再添加上前綴再次請求:
  • requests.get(url="http://cn.bing.com" + i)
  • 這次請求的背景圖片大功告成。

接下來就把他保存到本地再進行設置背景圖片,

  1. 這個地址實際請求的是一堆二進制,只需要把這些二進制文件保存到本地就可以。
  2. # 請求bing網站提取背景圖片地址
    bing = requests.get(url="http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US").json()
    i = bing['images'][0]['url']
    # 從新拼接背景圖地址
    ima = requests.get(url="http://cn.bing.com" + i)
    # 轉二進制保存至本地,從新命名爲png文件
    img = ima.content
    with open(C:\\image\\img.png, 'wb') as f:
        f.write(img)
  3. 運行代碼看是否保存到本地:
  4. 保存成功。

保存圖片成功後需要設置電腦背景圖片:

  • #控制windows系統
    import win32api,win32con,win32gui
    # 打開windows註冊表  HKEY_CURRENT_USER  並且設置屬性
    k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,
                              "Control panel\\Desktop", 0, win32con.KEY_SET_VALUE)
    # 在HKEY_CURRENT_USER註冊表中寫入屬性值,0表示桌面壁紙居中,2表示拉伸桌面
    win32api.RegSetValueEx(k, "wapaperStyle", 0, win32con.REG_SZ, "2")
    win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")
    # 刷新桌面
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, 
                               C:\\image\\img.png, win32con.SPIF_SENDWININICHANGE)
  • 整理代碼後:
# -*- coding: utf-8 -*-
# Time : 2019-11-08 18:00
# Name : mild
# File : rest.py
import requests
import win32api,win32con,win32gui
from datetime import datetime


def dow_img(path):
    # 請求bing網站提取背景圖片地址
    bing = requests.get(url="http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US").json()
    i = bing['images'][0]['url']
    # 從新拼接背景圖地址
    ima = requests.get(url="http://cn.bing.com" + i)
    # 轉二進制保存至本地,從新命名爲png文件
    img = ima.content
    with open(path, 'wb') as f:
        f.write(img)


def desktop_img(bmp_path):
    # 打開windows註冊表  HKEY_CURRENT_USER  並且設置屬性
    k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,
                              "Control panel\\Desktop", 0, win32con.KEY_SET_VALUE)
    # 在HKEY_CURRENT_USER註冊表中寫入屬性值,0表示桌面壁紙居中,2表示拉伸桌面
    win32api.RegSetValueEx(k, "wapaperStyle", 0, win32con.REG_SZ, "2")
    win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")
    # 刷新桌面
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, bmp_path, win32con.SPIF_SENDWININICHANGE)


# 調取系統時間
Dt = datetime.now()
# 以年月日命名圖片名稱
TimeN = Dt.strftime('%Y-%m-%d')
# 圖片保存地址以及設置背景圖片地址
path = "C:\\Users\\13513\\Pictures\\bing\\"+TimeN+".png"
dow_img(path)
desktop_img(path)

最後兩步 :

打包Windows可執行程序

  1. 打開cmd
  2. cd到源文件所在路徑
  3. 運行pyinstaller -F 文件名.py
  4. 運行結束後,disc文件夾下就有了可以執行的exe文件

設置Windows任務

  1. 控制面板->管理工具->任務計劃程序
  2. 創建任務
  3. 填寫名稱
  4. 操作-啓動程序 選擇程序路徑
  5. 點擊觸發器-設置爲當用戶登陸時 -可以設置延時爲3秒後
  6. 設置完成。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章