查看文章 |
写了个自动把National Geographic的photo of the day下下来当桌面的东东....
2008-01-31 16:45
额,懒了...jpg转成bmp是用的irfanview...应该能够自动支持800*600到1280*1024的桌面... import urllib import re import ctypes import os import socket socket.setdefaulttimeout(5.0) def get_resolution(): from win32api import GetSystemMetrics return [GetSystemMetrics(0), GetSystemMetrics(1)] def get_pod_address(): basesite = r'http://photography.nationalgeographic.com' url = basesite + r'/photography/photo-of-the-day' while 1: try: c = urllib.urlopen(url).read() break except: continue r = re.compile(r'<a class=\"wallpaper\" href=\"(?P<url>[^\"]*)\">Wallpaper</a>', re.IGNORECASE|re.MULTILINE) m = r.search(c) print basesite + m.group('url') while 1: try: c = urllib.urlopen(basesite + m.group('url')).read() break except: continue resolution = get_resolution() r = re.compile(r'a href=\"(?P<url>[^\"]*)\">' + str(resolution[0]) + ' x ' + str(resolution[1]), re.IGNORECASE|re.MULTILINE) m = r.search(c) print basesite + m.group('url') return basesite + m.group('url') def main(): url = get_pod_address() filename = os.path.basename(url) f = open('photo\\' + filename, 'wb') while 1: try: c = urllib.urlopen(url).read() break except: continue f.write(c) f.close() os.system('i_view32 "' + os.getcwd() + '\\photo\\' + filename + '" /convert=tmp.bmp') SPI_SETDESKWALLPAPER = 20 ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, os.getcwd() + r'\photo\tmp.bmp' , 1) if __name__ == '__main__': main() |
最近读者: