使用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处理cookie详解
Feb 07 Python
解决python写的windows服务不能启动的问题
Apr 15 Python
Python不规范的日期字符串处理类
Jun 10 Python
python结合opencv实现人脸检测与跟踪
Jun 08 Python
Python之父谈Python的未来形式
Jul 01 Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
Nov 07 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
Python并发编程实例教程之线程的玩法
Jun 20 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 异常处理实现代码
2009/03/10 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
js实现数字滚动特效
2019/12/16 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
python处理图片之PIL模块简单使用方法
2015/05/11 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
python中for用来遍历range函数的方法
2018/06/08 Python
Python中的Django基本命令实例详解
2018/07/15 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
pytorch实现线性拟合方式
2020/01/15 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
python基于opencv实现人脸识别
2021/01/04 Python
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
法律进社区实施方案
2014/03/21 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
用Python可视化新冠疫情数据
2022/01/18 Python