使用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实现全角半角转换的方法
Aug 18 Python
Python内置函数的用法实例教程
Sep 08 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
构建Python包的五个简单准则简介
Jun 15 Python
python实现DES加密解密方法实例详解
Jun 30 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
pandas 数据类型转换的实现
Dec 29 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
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
smarty内置函数section的用法
2015/01/22 PHP
php跨服务器访问方法小结
2015/05/12 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
python实现马耳可夫链算法实例分析
2015/05/20 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
python append、extend与insert的区别
2016/10/13 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
汽车检测与维修个人求职信
2013/09/24 职场文书
计算机相关的自我评价
2014/01/15 职场文书
学生党支部先进事迹
2014/02/04 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
JavaScript 定时器详情
2021/11/11 Javascript
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL