使用Python脚本将Bing的每日图片作为桌面的教程


Posted in Python onMay 04, 2015

微软最近出了个 必应bing 缤纷桌面,使用下来还是不错,可以每天更换Bing首页的北京作为壁纸,但是该软件有个不好的地方是,安装后桌面上会有一个搜索框出现,很是烦人,而且不能关掉。于是出于技术考虑,想到了使用Python来实现这个功能。

正如很多介绍Python书中那样,Python是中胶水语言,用在哪里都是可行的。想要使用Python给桌面设置背景只需要下个模块安装即可:

http://sourceforge.net/projects/pywin32/

代码非常简单,参考了网上一些其他人写了代码,具体代码如下:
 

# -*- coding: utf-8 -*-
 
import urllib,time,os,Image,win32gui,win32con,win32api
 
class StealBing:
 
 def __init__(self):
  self.content = urllib.urlopen('http://cn.bing.com/').read()
  self.bgImageUrl = ''
  self.localFileName = ''
  self.localBMPFileName = ''
 
 def parserImageURL(self):
  tempStr = self.content[self.content.index('g_img={url:')+12:]
  self.bgImageUrl = tempStr[:tempStr.index('id:\'bgDiv\'')-2]
 
 def createLocalFileName(self):
  randomStr = time.strftime("%Y%m%d", time.localtime())
  self.localFileName = 'D:/Bing/' + randomStr + '.jpg'
  self.localBMPFileName = 'D:/Bing/' + randomStr + '.bmp'
 
 def downloadImage(self):
  if self.bgImageUrl == '':
   self.parserImageURL()
  if self.localFileName == '':
   self.createLocalFileName()
  urllib.urlretrieve(self.bgImageUrl, self.localFileName)
 
 def updateBGImage(self):
  img = Image.open(self.localFileName)
  img.save(self.localBMPFileName)
  os.remove(self.localFileName)
  k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
  win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2") #2拉伸适应桌面,0桌面居中
  win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0") 
  win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, self.localBMPFileName , 1+2)
 
if __name__ == '__main__':
 stealBing = StealBing()
 stealBing.downloadImage()
 stealBing.updateBGImage()
Python 相关文章推荐
Python数据类型详解(四)字典:dict
May 12 Python
Python使用自带的ConfigParser模块读写ini配置文件
Jun 26 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
Python获取指定字符前面的所有字符方法
May 02 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
python仿evething的文件搜索器实例代码
May 13 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
利用python爬取有道词典的方法
Dec 08 Python
弄清Pytorch显存的分配机制
Dec 10 Python
python中time、datetime模块的使用
Dec 14 Python
基于Python实现流星雨效果的绘制
Mar 18 Python
详解Python的Django框架中的通用视图
May 04 #Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 #Python
使用Python生成url短链接的方法
May 04 #Python
python实现bucket排序算法实例分析
May 04 #Python
python在指定目录下查找gif文件的方法
May 04 #Python
python创建关联数组(字典)的方法
May 04 #Python
python对html代码进行escape编码的方法
May 04 #Python
You might like
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
CI框架常用方法小结
2016/05/17 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
PHP 裁剪图片
2021/03/09 PHP
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
javascript基础知识讲解
2017/01/11 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
Python中的闭包详细介绍和实例
2014/11/21 Python
浅析Python中的多重继承
2015/04/28 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
3分钟学会一个Python小技巧
2018/11/23 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
详解python polyscope库的安装和例程
2020/11/13 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
2014年基层党建工作总结
2014/11/11 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
小学中队活动总结
2015/05/11 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
Nginx进程调度问题详解
2021/09/25 Servers