使用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写的一个wordpress的采集程序
Feb 27 Python
Python pass详细介绍及实例代码
Nov 24 Python
Python使用filetype精确判断文件类型
Jul 02 Python
Python3实现购物车功能
Apr 18 Python
django的csrf实现过程详解
Jul 26 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
python函数中将变量名转换成字符串实例
May 11 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
Python分类测试代码实例汇总
Jul 23 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 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
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
详解Vue.js中.native修饰符
2018/04/24 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
原材料检验岗位职责
2014/03/15 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
秋收起义观后感
2015/06/11 职场文书
小学语文教学随笔
2015/08/14 职场文书
技术转让协议书
2016/03/19 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
mysql优化
2021/04/06 MySQL
关于JavaScript回调函数的深入理解
2021/06/27 Javascript