鑑於現階段國內的搜索引擎還用不上Google, 筆者會尋求Bing搜索來代替。在使用Bing的過程當中,筆者發現Bing的背景圖片真乃良心之做,十分賞心悅目,所以,筆者的腦海中萌生了一個念頭:可否本身作個爬蟲,能夠提取Bing搜索的背景圖片並設置爲Windows的電腦桌面呢?Bing搜索的頁面以下:python
因而在一個風雨交加的下午,筆者開始了本身的探索之旅。固然,過程是曲折的,但筆者嘗試着能把它講得簡單點。
首先,咱們須要藉助一些Python模塊的幫助,它們是:web
固然,你的電腦上也須要安裝PhantomJS, 由於,咱們須要動態地爬取網頁。api
好了,準備工做就緒。接下來就是Python代碼時間了,完整的代碼以下:ui
# -*- coding: utf-8 -*- """ 此程序用於提取Bing搜索的背景圖片並設置爲Windows的電腦桌面 """ from urllib.request import urlretrieve from selenium import webdriver from selenium.common.exceptions import TimeoutException import win32api,win32con,win32gui #利用PhantomJS加載網頁 browser = webdriver.PhantomJS() # 設置最大等待時間爲30s browser.set_page_load_timeout(30) url = 'https://cn.bing.com/' try: browser.get(url) except TimeoutException: # 當加載時間超過30秒後,自動中止加載該頁面 browser.execute_script('window.stop()') # 從id爲bgDiv的標籤中獲取背景圖片的信息 t = browser.find_element_by_id('bgDiv') bg = t.get_attribute('style') # 從字符串中提取背景圖片的下載網址 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) # 將下載後的圖片設置爲Windows系統的桌面 # 打開指定註冊表路徑 reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE) # 最後的參數:2拉伸,0居中,6適應,10填充,0平鋪 win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2") # 最後的參數:1表示平鋪,拉伸居中等都是0 win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0") # 刷新桌面 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, img_path, win32con.SPIF_SENDWININICHANGE)
運行這個程序,稍等片刻,咱們就會發現本身的電腦壁紙已經換成了今天Bing搜索頁面的背景圖片,真的是very amzing.搜索引擎
本次分享到此結束,歡迎你們交流~~url