使用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 相关文章推荐
python3图片转换二进制存入mysql
Dec 06 Python
python实现文件分组复制到不同目录的例子
Jun 04 Python
Python中的pprint折腾记
Jan 21 Python
Python中为什么要用self探讨
Apr 14 Python
Python简单获取自身外网IP的方法
Sep 18 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
python实现发送QQ邮件(可加附件)
Dec 23 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
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
canvas实现钟表效果
2017/02/13 Javascript
js实现拖拽功能
2017/03/01 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
js数组常用最重要的方法
2018/02/04 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
Python中的with...as用法介绍
2015/05/28 Python
使用python实现个性化词云的方法
2017/06/16 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
Python求凸包及多边形面积教程
2020/04/12 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
出纳岗位职责范本
2013/12/01 职场文书
人力资源经理自我评价
2014/01/04 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
争做文明公民倡议书
2014/08/29 职场文书
农村党支部书记党群众路线四风问题整改措施
2014/09/26 职场文书
工作年限证明模板
2014/11/01 职场文书
学籍证明模板
2015/06/18 职场文书
四群教育工作总结
2015/08/10 职场文书