Python爬蟲之提取Bing搜尋的背景圖片並設定為Windows的電腦案頭

來源:互聯網
上載者:User

標籤:win   停止   windows系統   urllib   電腦   就會   ons   ant   style   

??鑒於現階段國內的搜尋引擎還用不上Google, 筆者會尋求Bing搜尋來代替。在使用Bing的過程中,筆者發現Bing的背景圖片真乃良心之作,十分賞心悅目,因此,筆者的腦海中萌生了一個念頭:能否自己做個爬蟲,可以提取Bing搜尋的背景圖片並設定為Windows的電腦案頭呢?Bing搜尋的頁面如下:


??於是在一個風雨交加的下午,筆者開始了自己的探索之旅。當然,過程是曲折的,但筆者嘗試著能把它講得簡單點。
??首先,我們需要藉助一些Python模組的協助,它們是:

  • urllib
  • selenium
  • pywin32

當然,你的電腦上也需要安裝PhantomJS, 因為,我們需要動態地爬取網頁。

?? 好了,準備工作就緒。接下來就是Python代碼時間了,完整的代碼如下:

# -*- coding: utf-8 -*-"""   此程式用於提取Bing搜尋的背景圖片並設定為Windows的電腦案頭"""from urllib.request import urlretrievefrom selenium import webdriverfrom selenium.common.exceptions import TimeoutExceptionimport win32api,win32con,win32gui#利用PhantomJS載入網頁browser = webdriver.PhantomJS()# 設定最大等待時間為30sbrowser.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表示平鋪,展開置中等都是0win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0")# 重新整理案頭win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, img_path, win32con.SPIF_SENDWININICHANGE)

運行這個程式,稍等片刻,我們就會發現自己的電腦壁紙已經換成了今天Bing搜尋網頁面的背景圖片,真的是very amzing.

本次分享到此結束,歡迎大家交流~~

Python爬蟲之提取Bing搜尋的背景圖片並設定為Windows的電腦案頭

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.