鉴于现阶段国内的搜索引擎还用不上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