??鑒于現(xiàn)階段國內(nèi)的搜索引擎還用不上Google, 筆者會尋求Bing搜索來代替卿城。在使用Bing的過程中,筆者發(fā)現(xiàn)Bing的背景圖片真乃良心之作产场,十分賞心悅目,因此舞竿,筆者的腦海中萌生了一個念頭:能否自己做個爬蟲京景,可以提取Bing搜索的背景圖片并設(shè)置為Windows的電腦桌面呢?Bing搜索的頁面如下:
??于是在一個風(fēng)雨交加的下午骗奖,筆者開始了自己的探索之旅确徙。當(dāng)然,過程是曲折的重归,但筆者嘗試著能把它講得簡單點米愿。
??首先厦凤,我們需要借助一些Python模塊的幫助鼻吮,它們是:
- urllib
- selenium
- pywin32
當(dāng)然,你的電腦上也需要安裝PhantomJS, 因為较鼓,我們需要動態(tài)地爬取網(wǎng)頁椎木。
?? 好了,準(zhǔn)備工作就緒博烂。接下來就是Python代碼時間了香椎,完整的代碼如下:
# -*- coding: utf-8 -*-
"""
此程序用于提取Bing搜索的背景圖片并設(shè)置為Windows的電腦桌面
"""
from urllib.request import urlretrieve
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
import win32api,win32con,win32gui
#利用PhantomJS加載網(wǎng)頁
browser = webdriver.PhantomJS()
# 設(shè)置最大等待時間為30s
browser.set_page_load_timeout(30)
url = 'https://cn.bing.com/'
try:
browser.get(url)
except TimeoutException:
# 當(dāng)加載時間超過30秒后,自動停止加載該頁面
browser.execute_script('window.stop()')
# 從id為bgDiv的標(biāo)簽中獲取背景圖片的信息
t = browser.find_element_by_id('bgDiv')
bg = t.get_attribute('style')
# 從字符串中提取背景圖片的下載網(wǎng)址
start_index = bg.index('(')
end_index = bg.index(')')
img_url = bg[start_index+1: end_index]
# 下載該圖片到本地
img_path = 'E://Bing.jpg'
urlretrieve(img_url, img_path)
# 將下載后的圖片設(shè)置為Windows系統(tǒng)的桌面
# 打開指定注冊表路徑
reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)
# 最后的參數(shù):2拉伸,0居中,6適應(yīng),10填充,0平鋪
win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2")
# 最后的參數(shù):1表示平鋪,拉伸居中等都是0
win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0")
# 刷新桌面
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, img_path, win32con.SPIF_SENDWININICHANGE)
運行這個程序禽篱,稍等片刻畜伐,我們就會發(fā)現(xiàn)自己的電腦壁紙已經(jīng)換成了今天Bing搜索頁面的背景圖片,真的是very amzing.
本次分享到此結(jié)束躺率,歡迎大家交流~~