使用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中的序列化存储的方法
Apr 28 Python
python写日志封装类实例
Jun 28 Python
详解在Python程序中解析并修改XML内容的方法
Nov 16 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python 3.8 新功能全解
Jul 25 Python
python实现图片压缩代码实例
Aug 12 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
python turtle 绘制太极图的实例
Dec 18 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
使用gunicorn部署django项目的问题
Dec 30 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHP执行速率优化技巧小结
2008/03/15 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
js实现抽奖效果
2017/03/27 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
python实现读取并显示图片的两种方法
2017/01/13 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
2015教师节通讯稿
2015/07/20 职场文书
九不准学习心得体会
2016/01/23 职场文书
Python WSGI 规范简介
2021/04/11 Python
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python