日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/5/22 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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实现抓取必应图片设置桌面的全部內容,希望文章能夠幫你解決所遇到的問題。

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