Python自動(dòng)化更換 “電腦壁紙”

前言

本文的文字及圖片來源于網(wǎng)絡(luò),僅供學(xué)習(xí)、交流使用,不具有任何商業(yè)用途,如有問題請(qǐng)及時(shí)聯(lián)系我們以作處理。

PS:如有需要Python學(xué)習(xí)資料的小伙伴可以加點(diǎn)擊下方鏈接自行獲取

python免費(fèi)學(xué)習(xí)資料以及群交流解答點(diǎn)擊即可加入

本文章分為兩個(gè)階段,第一個(gè)階段是下載電腦壁紙,因?yàn)樾【帥]有圖片壁紙,所以我寫了一個(gè)爬取彼岸壁紙的爬蟲;第二個(gè)階段是實(shí)現(xiàn)自動(dòng)更換電腦壁紙的操作,如果讀者有圖片壁紙,可以直接看第二個(gè)階段喔。

爬蟲獲取壁紙

這是一個(gè)爬蟲的過程,但是應(yīng)用了自動(dòng)化,也就是python中的selenium模塊,需要的python模塊有requests、selenium、os、time、bs4等。

目標(biāo)網(wǎng)址:http://pic.netbian.com/

我們?cè)谳斎肟蛑休斎胱约合胨阉鞯膬?nèi)容,點(diǎn)擊搜索,可以發(fā)現(xiàn),此時(shí)的網(wǎng)址格式是這樣的。

也就是輸入的關(guān)鍵字變成了搜索id了,那么怎樣得到這個(gè)網(wǎng)址呢?小編是這樣的,應(yīng)用到selenium模塊,實(shí)現(xiàn)搜索自動(dòng)化,來到這個(gè)網(wǎng)址的界面,然后,應(yīng)用selenium 模塊下面的current_url 方法就可以得到這個(gè)網(wǎng)址了。

這個(gè)網(wǎng)址下面就是我們搜索得到的圖片了。很顯然,這些圖片不可能只有一頁(ajax除外),發(fā)現(xiàn)這個(gè)網(wǎng)址下面有個(gè)總頁碼,如下面的總頁碼是191頁。

我們點(diǎn)擊其中的一個(gè)頁碼就如可以發(fā)現(xiàn),接下來的網(wǎng)址的這個(gè)為:http://pic.netbian.com/e/search/result/index.php?page=1&searchid=18 ,而且 page 后面的參數(shù)要比實(shí)際頁數(shù)少一,也就是我選擇第一頁的時(shí)候,實(shí)際 page=0 。我們點(diǎn)擊其中的圖片看一下(當(dāng)然是在打卡開發(fā)者模式的情況下的)

發(fā)現(xiàn)這個(gè)圖片的尺寸比較小,如果直接這樣把它下載下來,設(shè)置為壁紙的話,電腦桌面肯定會(huì)比較模糊。

經(jīng)過幾次嘗試,發(fā)現(xiàn)在另一個(gè)網(wǎng)址內(nèi)部,也有這個(gè)圖片的下載地址,圖片尺寸比較大,設(shè)置為電腦壁紙不會(huì)出現(xiàn)剛才那種現(xiàn)象。

之后,我們只需得到這個(gè)網(wǎng)址,并下載即可,部分代碼如下:

def Download():
    id,path=get_info()
    # http://pic.netbian.com/e/search/result/index.php?page={}&searchid={}
    #  網(wǎng)址的格式
    url2='http://pic.netbian.com/e/search/result/index.php?page={}&searchid={}'

    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
    # 請(qǐng)求頭
    page2=int(input('請(qǐng)輸入下載頁數(shù)(注意不要超過總頁數(shù)):'))  # 下載頁數(shù)

    for page in range(page2):
        url=url2.format(page,id)
        content=requests.get(url=url,headers=headers)
        L2=bs(content=content.text)

        for j in range(len(L2)):
            content=requests.get(url=L2[j],headers=headers).content
            with open(file=path+'./{}-{}.jpg'.format(page+1,j),mode='wb') as f:
                f.write(content)
        print('-->已下載{}頁'.format(page+1))
        time.sleep(2)  # 每下載一頁,休眠2秒

自動(dòng)更換電腦壁紙
需要的python模塊有win32api、win32con、win32gui、os、time等。這個(gè)基本原理好像要應(yīng)用到電腦注冊(cè)表,我不是很懂,所以小編在這里就不清晰講解了,直接上代碼。

import win32api
import win32con
import win32gui
import os
import time


def Windows_img(paperPath):
    k=win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control panel\\Desktop",0,win32con.KEY_SET_VALUE)
    # 在注冊(cè)表中寫入屬性值
    win32api.RegSetValueEx(k,"wapaperStyle",0,win32con.REG_SZ,"2")  # 0 代表桌面居中 2 代表拉伸桌面
    win32api.RegSetValueEx(k,"Tilewallpaper",0,win32con.REG_SZ,"0")

    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,paperPath,win32con.SPIF_SENDWININICHANGE) # 刷新桌面

def changeWallpaper():
    path=input('請(qǐng)輸入文件路徑:')
    L2=os.listdir(path=path)  # 得到文件路徑下的圖片,列表類型
    i=0
    print(L2)
    while True:
        Windows_img(path+'\{}'.format(L2[i]))
        time.sleep(10)  # 設(shè)置壁紙更換間隔,這里為10秒,根據(jù)用戶自身需要自己設(shè)置秒數(shù)
        i += 1
        if i==len(L2):  # 如果是最后一張圖片,則重新到第一張
            i=0

if __name__ == '__main__':
    changeWallpaper()

代碼中的這個(gè)時(shí)間可以自己根據(jù)自身需求進(jìn)行設(shè)置。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容