使用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常用函数详解
Sep 13 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
Spy++的使用方法及下载教程
Jan 29 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 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返回当前日期或者指定日期是周几
2015/05/21 PHP
PHP获取文件行数的方法
2015/06/10 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
PHP实现简单日历类编写
2020/08/28 PHP
js获取指定日期前后的日期代码
2013/08/20 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
python批量提取word内信息
2015/08/09 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
药剂专业学生求职信范文
2013/12/28 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
实习单位接收函
2014/01/11 职场文书
军训自我鉴定
2014/01/22 职场文书
市场营销求职信范文
2014/02/21 职场文书
幼儿园元旦家长感言
2014/02/27 职场文书
外国人聘用意向书
2014/04/01 职场文书
食品流通安全承诺书
2014/05/22 职场文书
工人先锋号申报材料
2014/12/29 职场文书
教师个人成长总结
2015/02/11 职场文书