1. 程式人生 > >[Python] 抓取必應每日一圖,設定為桌面桌布

[Python] 抓取必應每日一圖,設定為桌面桌布

在Windows 10 64位系統環境下,使用 Python 3.6 進行圖片抓取和設定桌布操作。
其中,圖片連結 https://area.sinaapp.com/bingImg/ 為 Bing 每日一圖的地址,解析可以獲得圖片檔案的地址,下載即可。之後使用 ctypes 工具進行桌布設定。頗為簡單。結合 AHK (auto hot key) 可以用快捷按鍵的方式執行指令碼更新桌布。頗為方便。 :)

SetBingImgAsWallpaper.py

"""
程式功能:抓取必應每日一圖,設定為桌面桌布
"""

import urllib.request
import requests         
import
os.path import ctypes def save_img(img_url,dirname): #儲存圖片到磁碟資料夾dirname中 try: if not os.path.exists(dirname): print ('資料夾',dirname,'不存在,重新建立') #os.mkdir(dirname) os.makedirs(dirname) #獲得圖片檔名,包括字尾 basename = os.path.basename(img_url) #拼接目錄與檔名,得到圖片路徑
filepath = os.path.join(dirname, basename) #下載圖片,並儲存到資料夾中 urllib.request.urlretrieve(img_url,filepath) except IOError as e: print ('檔案操作失敗',e) except Exception as e: print ('錯誤 :',e) print("Save", filepath, "successfully!") return filepath # 請求網頁,跳轉到最終 img 地址
def get_img_url(raw_img_url = "https://area.sinaapp.com/bingImg/"): r = requests.get(raw_img_url) img_url = r.url # 得到圖片檔案的網址 print('img_url:', img_url) return img_url # 設定圖片絕對路徑 filepath 所指向的圖片為桌布 def set_img_as_wallpaper(filepath): ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0) def main(): dirname = "E:\\Pictures\\bingImg" # 圖片要被儲存在的位置 img_url = get_img_url() filepath = save_img(img_url, dirname) # 圖片檔案的的路徑 set_img_as_wallpaper(filepath) main()

MyScript.ahk

;Ctrl + Alt + P 快捷鍵執行SetBingImgAsWallpaper.py指令碼設定桌布為Bing每日一圖(需要在聯網狀態執行)
^!P::
Run python SetBingImgAsWallpaper.py
Return

抓取的圖片