使用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使用xmlrpc实例讲解
Dec 17 Python
Python与shell的3种交互方式介绍
Apr 11 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
使用python去除图片白色像素的实例
Dec 12 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
python实现超级马里奥
Mar 18 Python
Python中常见的数制转换有哪些
May 27 Python
基于python实现可视化生成二维码工具
Jul 08 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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
咖啡与水的关系
2021/03/03 冲泡冲煮
解析thinkphp的左右值无限分类
2013/06/20 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
2017/02/04 PHP
php中的异常和错误浅析
2017/05/03 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
详解python while 函数及while和for的区别
2018/09/07 Python
python实现Virginia无密钥解密
2019/03/20 Python
浅谈Python爬虫基本套路
2019/03/25 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
python raise的基本使用
2020/09/10 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
小班评语大全
2014/05/04 职场文书
护理专业自荐书
2014/06/04 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
运动会1000米加油稿
2015/07/21 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL