偷取Bing每天的桌面,并设置为自己的桌面
Python语言: 偷取Bing每天的桌面,并设置为自己的桌面
# -*- coding: cp936 -*-
'''
Created on 2009-8-17
@author: lign
偷取Bing的背景图片,并设置为自己的桌面背景,随后加入预览和定时偷取
'''
import os
import sys
import random
import urllib
import win32gui
import win32con
import Image
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:len(self.content)]
tempStr = tempStr[0:tempStr.index(',id:')-1]
tempStr = tempStr.replace('\\', '')
self.bgImageUrl = 'http://cn.bing.com'+tempStr
#仅用于生成本地文件名
def createLocalFileName(self):
randomStr = ''.join(random.sample(['a','b','c','d','e','f','g','h','i','j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'], 6)).replace(" ","")
self.localFileName = 'c:/temp/' + randomStr + '.jpg'
self.localBMPFileName = 'c:/temp/' + randomStr + '.bmp'
def downloadImage(self):
if self.bgImageUrl == '':
self.parserImageURL()
if self.localFileName == '':
self.createLocalFileName()
data = urllib.urlretrieve(self.bgImageUrl, self.localFileName)
def updataBGImage(self):
img = Image.open(self.localFileName)
img.save(self.localBMPFileName)
os.remove(self.localFileName)
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, self.localBMPFileName , 0)
if __name__ == '__main__':
stealBing = StealBing()
stealBing.downloadImage()
stealBing.updataBGImage()
