使用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中的类与对象之描述符详解
Mar 27 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
django 发送手机验证码的示例代码
Apr 25 Python
pytorch permute维度转换方法
Dec 14 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
Pytorch之Variable的用法
Dec 31 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
Feb 11 Python
django模板获取list中指定索引的值方式
May 14 Python
pandas之分组groupby()的使用整理与总结
Jun 18 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 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
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
NumPy 数组使用大全
2019/04/25 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
python实现ip地址的包含关系判断
2020/02/07 Python
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
材料加工硕士生求职信
2013/10/10 职场文书
农村婚礼证婚词
2014/01/10 职场文书
表彰先进的通报
2014/01/31 职场文书
移风易俗倡议书
2014/04/15 职场文书
英文演讲稿
2014/05/15 职场文书
司法助理专业自荐书
2014/06/13 职场文书
水知道答案观后感
2015/06/08 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
node快速搭建后台的实现步骤
2022/02/18 NodeJs
ant design vue的form表单取值方法
2022/06/01 Vue.js