日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现抓取必应图片设置桌面

發布時間:2025/5/22 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现抓取必应图片设置桌面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源碼參考https://github.com/vbirds/pyWallpaper,代碼風格不錯

本人只是將其適配到python3.5,并消除一些bug,源代碼中桌面地址未使用絕對路徑導致win10 下無法成功設置桌面

#python: 3.5
#os: win10 home

#-*-coding:utf-8-*- from PIL import Image import win32gui import win32con import win32api import os import threading import urllib.request import time import sys import json''' {"images":[{"startdate":"20170827","fullstartdate":"201708271600","enddate":"20170828","url":"/az/hprichbg/rb/BotallackCornwall_ZH-CN11396172846_1920x1080.jpg","urlbase":"/az/hprichbg/rb/BotallackCornwall_ZH-CN11396172846","copyright":"康沃爾郡內的巴特萊克礦場, 英國 (? Robert Harding/Masterfile)","copyrightlink":"http://www.bing.com/search?q=botallack+manor&form=hpcapt&mkt=zh-cn","quiz":"/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20170827_BotallackCornwall%22&FORM=HPQUIZ","wp":true,"hsh":"5eb81f1029c57dfa1cc5f69ca871f4b1","drk":1,"top":1,"bot":1,"hs":[]}],"tooltips":{"loading":"正在加載...","previous":"上一個圖像","next":"下一個圖像","walle":"此圖片不能下載用作壁紙。","walls":"下載今日美圖。僅限用作桌面壁紙。"} } '''class Wallpaper:def __init__(self, time=60):self.count = 0if time <= 0 :self.time = 60self.time = timeself.urltemplate = 'http://cn.bing.com/HPImageArchive.aspx?format=js&idx=%d&n=1&nc=1361089515117&FORM=HYLH1'self.baImageUrlList = []self.localFileName = ''self.localBMPFileName = ''self.imagedir = './images/'self.bmpdir = './bmpimage/'self.bmplist = []def start(self):self.prepareDir()self.parserImageUrl()self.download_images()self.image_convert_bmp()self.set_wall_func()def prepareDir(self):if not os.path.exists(self.imagedir):os.makedirs(self.imagedir)if not os.path.exists(self.bmpdir):os.makedirs(self.bmpdir)def parserImageUrl(self):for i in range(0, 7, 1):url = self.urltemplate % i #use i replace format try:content = urllib.request.urlopen(url,None).read().decode("utf-8")# 由于有中文,decode("utf-8")必須except:print(url)print("parse try again")decodedjson = json.loads(content)imageurl = decodedjson['images'][0]['url']self.baImageUrlList.append('https://cn.bing.com'+imageurl)def download_images(self):for url in self.baImageUrlList:imagename = os.path.basename(url)imagepath = self.imagedir + imagenameprint(imagepath)f = open(imagepath, 'wb')try:conn = urllib.request.urlopen(url)except:print(url)print("download try again")f.write(conn.read())f.close()def image_convert_bmp(self):imaglist = os.listdir(self.imagedir)for imagepath in imaglist:file_name = os.path.basename(imagepath)file_name_type = os.path.splitext(file_name)file_name = file_name_type[0]newpath = self.bmpdir + file_name + '.bmp'imagepath = './images/' + imagepathbmpImage = Image.open(imagepath)bmpImage.save(newpath, "BMP")self.bmplist.append(sys.path[0]+'\\bmpimage\\'+file_name + '.bmp')def setWallpaper(self, imagepath):k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2") #2拉伸適應桌面,0桌面居中win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")print(imagepath)win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)#文件需要使用完整路徑def set_wall_func(self):list_size = len(self.bmplist)index = self.count % list_sizefilename = self.bmplist[index]self.count += 1self.setWallpaper(filename)self.set_wall_timer()def set_wall_timer(self):timer = threading.Timer(self.time, self.set_wall_func)timer.start()if __name__ == '__main__':bing = Wallpaper(300)bing.start()

?

轉載于:https://www.cnblogs.com/hixin/p/7444214.html

總結

以上是生活随笔為你收集整理的python实现抓取必应图片设置桌面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。