懒人的Python技巧#20060708

National Geographic 的网站上有一个 Photo of the Day (POTD)栏目:

http://lava.nationalgeographic.com/pod/ (当天的墙纸)
http://lava.nationalgeographic.com/cgi-bin/pod/archive.cgi (以前的墙纸Archive)

每天会提供一张精美照片的墙纸下载(而且有800x600和1024x768两种尺寸大小选择),非常喜欢,因此每天我会:

1)打开IE;
2)从收藏夹中选取POTD链接进行浏览;
3)点击想下载的图片链接,进入下载页面;
4)从下载页面右键将图片另存到自己的电脑中;
5)打开文件管理器,到达保存图片的位置,进行查看。

在分析了这个栏目页面的源文件之后,发现图片链接的构成方式有规律可循,完全可以写个程序,自动帮我抓取我想要的1024x768尺寸的墙纸图片。于是,一段Python小程序和一个批处理就省掉了上述访问网站那些麻烦。

现在每天我只需要:

1)双击桌面上批处理文件的快捷方式,运行;
2)文件管理器自动被批处理打开到墙纸图片被保存的位置,直接进行查看。

省心!

 

---- GetPOTDwallpaper.py ---- BEGIN ----

from urllib import urlopen
from time import localtime
import sys

# 取得输出路径
outputpath = sys.argv[1]

# 取得链接中需要的日期信息
# 我们需要两位数字的年份, 月份和日号
# 使用time.localtime()取得当天的日期信息
year = str(localtime().tm_year)
year = year[2:]
month = localtime().tm_mon
if month < 10 : month = '0' + str(month)
else: month = str(month)
day = localtime().tm_mday
if day < 10 : day = '0' + str(day)
else: day = str(day)

# 拼合出包含墙纸图片的页面链接
POTDurl = "
http://lava.nationalgeographic.com/cgi-bin/pod/wallpaper.cgi?day=" + day + "&month=" + month + "&year=" + year
# 使用urllib.urlopen()读取页面的HTML源代码
doc = urlopen(POTDurl).read()

# 链接的样本如下
# <a href="/pod/pictures/lg_wallpaper/06215_16.jpg"><img src="/pod/images/pod_1024x768_icon.gif" alt="" width="37" height="27" border="0"></a></td><td><a href="/pod/pictures/lg_wallpaper/06215_16.jpg">1,024 x 768 pixels&#151;best for larger monitors</a></td></tr></table></div>
# 墙纸图片的链接里包含 "lg_wallpaper" 字串
# 因此可以由此进行查找和定位
if doc.find("lg_wallpaper") >= 0:
    # 定位链接
    begin = doc.find("lg_wallpaper") - 14
    end = begin + doc[begin:].find('"><img')
    # 拼合图片(JPG格式)的URL链接
    wallpaperlink = "
http://lava.nationalgeographic.com" + doc[begin:end]
    # 取得图片文件数据并保存到指定的位置
    imagedata = urlopen(wallpaperlink).read()
    outputfilepathname = outputpath + str(localtime().tm_year) + month + day + ".jpg"
    imagefile = open(outputfilepathname, 'wb')
    imagefile.write(imagedata)
    imagefile.close()
else:
    print "Can't find the image link."

---- GetPOTDwallpaper.py ---- E N D ----

 


---- GetPOTDwallpaper.bat ---- BEGIN ----

REM 用参数指定保存图片的位置
python GetPOTDwallpaper.py I:/Pic/NGM-WALLPAPERS/NGM-POD-WALLPAPER/
REM 启动文件管理器并且打开到保存墙纸图片的位置方便查看
explorer I:/Pic/NGM-WALLPAPERS/NGM-POD-WALLPAPER/

---- GetPOTDwallpaper.bat ---- E N D ----  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值