Python實(shí)現(xiàn)電腦壁紙的采集與輪換效果
亮點(diǎn)
1、系統(tǒng)性分析頁面
2、多頁面數(shù)據(jù)解析
3、海量圖片數(shù)據(jù)保存
環(huán)境
python 3.8
pycharm 2021.2
requests pip install requests
parsel pip install parsel
模塊安裝問題
如果安裝python第三方模塊:
win + R 輸入 cmd 點(diǎn)擊確定, 輸入安裝命令 pip install 模塊名 (pip install requests) 回車
在pycharm中點(diǎn)擊Terminal(終端) 輸入安裝命令
如何配置pycharm里面的python解釋器?
選擇file(文件) >>> setting(設(shè)置) >>> Project(項(xiàng)目) >>> python interpreter(python解釋器)
點(diǎn)擊齒輪, 選擇add
添加python安裝路徑
pycharm如何安裝插件?
選擇file(文件) >>> setting(設(shè)置) >>> Plugins(插件)
點(diǎn)擊 Marketplace 輸入想要安裝的插件名字 比如:翻譯插件 輸入 translation / 漢化插件 輸入 Chinese
選擇相應(yīng)的插件點(diǎn)擊 install(安裝) 即可
安裝成功之后 是會彈出 重啟pycharm的選項(xiàng) 點(diǎn)擊確定, 重啟即可生效
Python: 編程語言()
用計(jì)算機(jī)語言(0 1): 用來跟計(jì)算機(jī)進(jìn)行交互的語言
翻譯 英文單詞翻譯成 0 或者 1 python 3.8
實(shí)現(xiàn)一系列操作
代碼編輯器: pycharm 2021.2
Python: 工具
內(nèi)置模塊
第三方模塊
python 案例 (采集彼岸壁紙)
來到圖片列表頁面 進(jìn)行點(diǎn)擊操作 來到圖片詳情頁
在圖片詳情頁里面 點(diǎn)擊圖片
來到 大圖頁面 , 獲取到圖片
代碼實(shí)現(xiàn)
- 訪問當(dāng)圖片列表頁面(發(fā)送請求)
- 獲取數(shù)據(jù)
- 解析數(shù)據(jù)
- 發(fā)送請求(訪問網(wǎng)站)
采集壁紙
# 導(dǎo)入工具 import requests import parsel for page in range(2, 16): url = f'http://www.netbian.com/meinv/index_{page}.htm' # 1. 發(fā)送請求 response = requests.get(url) # 亂碼 response.encoding = 'gbk' # 2. 獲取數(shù)據(jù) html_data = response.text # 3. 解析數(shù)據(jù) 圖片鏈接獲取到 提取出來 selector = parsel.Selector(html_data) img_list = selector.css('.list img::attr(src)').getall() for img_url in img_list: # 小圖片 >>> 大圖片 img_url = img_url.replace('small', '') # http://img.netbian.com/file/2022/0416/small0003229mRl41650038602.jpg img_url = img_url[:-14] + '.jpg' # 圖片名稱 提取出來 img_name = img_url.split('/')[-1] # 直接獲取圖片二進(jìn)制數(shù)據(jù) img_data = requests.get(img_url).content print(img_name) # 保存數(shù)據(jù) with open(f'img/{img_name}', mode='wb') as f: f.write(img_data)
自動換壁紙
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) # 在注冊表中寫入屬性值 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('請輸入文件路徑:') path = r"C:\02-講師文件夾\巳月公開課\課題\wallhaven\img" L2=os.listdir(path=path) # 得到文件路徑下的壁紙文件夾,列表類型 i=0 print(L2) # 壁紙文件夾 url_list = [] for l2 in L2: detail_path = path + '\\' + l2 L3 = os.listdir(detail_path) # 得到壁紙文件夾路徑下的圖片,列表類型 for l3 in L3: url_list.append(detail_path + '\\' + l3) print(url_list) while True: Windows_img(url_list[i]) print('{}'.format(url_list[i])) time.sleep(2) # 設(shè)置壁紙更換間隔,這里為10秒,根據(jù)用戶自身需要自己設(shè)置秒數(shù) i += 1 if i == len(url_list): # 如果是最后一張圖片,則重新到第一張 i = 0 def changeWallpaper_2(): """文件夾/圖片""" path = input('請輸入文件路徑:') # path = r"C:\02-講師文件夾\巳月公開課\課題\回車桌面壁紙\img" L2=os.listdir(path=path) # 得到文件路徑下的圖片,列表類型 i=0 print(L2) while True: Windows_img(path+'\{}'.format(L2[i])) print(path+'\{}'.format(L2[i])) time.sleep(10) # 設(shè)置壁紙更換間隔,這里為10秒,根據(jù)用戶自身需要自己設(shè)置秒數(shù) i += 1 if i==len(L2): # 如果是最后一張圖片,則重新到第一張 i=0 if __name__ == '__main__': changeWallpaper_2()
到此這篇關(guān)于Python實(shí)現(xiàn)電腦壁紙的采集與輪換效果的文章就介紹到這了,更多相關(guān)Python電腦壁紙內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實(shí)例進(jìn)階
這篇文章主要為大家詳細(xì)介紹了Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實(shí)例進(jìn)階,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Python中join()函數(shù)多種操作代碼實(shí)例
這篇文章主要介紹了Python中join()函數(shù)多種操作代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01Python中JSON數(shù)據(jù)的相互轉(zhuǎn)化詳解
這篇文章主要介紹了Python中JSON數(shù)據(jù)的相互轉(zhuǎn)化詳解,JSON 是一種輕量級的數(shù)據(jù)交互格式,可以按照 JSON 指定的格式去組織和封裝數(shù)據(jù),2023-12-12
JSON 本質(zhì)是一個(gè)帶有特定格式的字符串,需要的朋友可以參考下anaconda升級sklearn版本的實(shí)現(xiàn)方法
這篇文章主要介紹了anaconda升級sklearn版本的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python中g(shù)etservbyport和getservbyname函數(shù)的用法大全
在Python的網(wǎng)絡(luò)編程中,getservbyport()函數(shù)和getservbyname()函數(shù)是socket模塊中的兩個(gè)函數(shù),因此在使用這兩個(gè)函數(shù)時(shí),需要導(dǎo)入socket模塊,這篇文章主要介紹了Python中g(shù)etservbyport和getservbyname函數(shù)的用法,需要的朋友可以參考下2023-01-01python實(shí)踐項(xiàng)目之監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)詳情
介紹一個(gè)利用Python監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)情況的python代碼,它可以清楚地知道,你的電腦網(wǎng)絡(luò)是否是鏈接成功或失敗,下面小編帶大家來一起學(xué)習(xí)它2019-05-05