Python代码练习--批量下载

本文是上一篇的超囧的图片链接批量获取和下载的延续。本文的主要目的在于熟悉Python的各个模块,程序的逻辑十分简单,处理形如http://www.123.com/x/y/z/456.jpg的静态资源 。用法:比如我要在皮皮书屋上下载《C# 4.0 in a Nutshell》的图片资源,那么登录后发现资源的第一页地址为http://static.ppurl.com/images/pdfpreview/4392727/m/0.jpg,那么就把sampleurl设置为这个值,folder设置为本机目录,start设置为0,终点可以设置为一个较大的数,用于完全下载。之后在控制台python one.py执行即可。

代码
#-*- coding:utf-8 -*-
import os
import time
import urlparse
import string  

'''
用于下载资源的小程序
给定样板url设置起止循环点,利用wget批量下载文件。非常适合下载静态图片文件
某些网站经过特殊处理(如登录验证/请求拦截)无法下载
'''

#样板URL,生成的URL列表以此递增
sampleurl='http://static.ppurl.com/images/pdfpreview/4396574/m/0.jpg'
#保存图片的文件夹(末尾必须带上斜线),程序会在这个目录下新建一个网站目录
folder='/home/xgf/wget/'
#基准URL循环起点
start=0
#基准URL循环终点
end=30

#在folder下新建当前网站目录
url=urlparse.urlparse(sampleurl)
base
=folder+url.hostname+'/'
#解析文件格式
frags=sampleurl.split('/')
ext
=frags[len(frags)-1].split('.')[1]
baseurl
='/'.join(frags[:-1])
if not os.path.isdir(folder):
    os.mkdir(folder)
if not os.path.isdir(base):
    os.mkdir(base)
os.chdir(base)

#根据设置的URL的起点与终点生成批量URL地址,保存到文本文件中。
now=time.localtime()
filelist
='urls-{0}{1}{2}{3}{4}.txt'.format(now[1],now[2],now[3],now[4],now[5])
f
=open(base+filelist,'w')
for x in xrange(start,end,1):
    f.write(
'{0}/{1}.{2}\n'.format(baseurl,x,ext))
f.close()
os.system(
'wget -i '+filelist)

#如果不希望保存URL列表则删除文件
#
os.remove(base+filelist)
     


 


posted @ 2011-01-04 23:32  高凡凡高  阅读(711)  评论(0编辑  收藏  举报