GustavoBarbieriDownloader
This download a list of URLs to current directory
It doesn't override files, use .X version instead.
#!python
#!/usr/bin/python2.4
import sys
def usage():
print >> sys.stderr, "Usage:\n\n\t%s <url1> <url2> ... <urlN>\n\n" % \
sys.argv[ 0 ]
# usage()
if len( sys.argv ) < 2:
usage()
raise SystemExit
import os
import urlparse
def get_file_name( url ):
try:
fname = os.path.basename( urlparse.urlparse( url )[ 2 ] )
except:
fname = "unknow-download-name"
i = 1
name = fname
while os.path.exists( name ):
name = "%s.%d" % ( fname, i )
i += 1
return name
# get_file_name()
import urllib
for url in sys.argv[ 1 : ]:
try:
fname = get_file_name( url )
print >> sys.stderr, "Downloading:", url, "->", fname
remote = urllib.urlopen( url )
i = remote.info()
clength = int( i[ "Content-Length" ] )
try:
ctype = i[ "Content-Type" ]
except:
ctype = "Unknow-Type"
print >> sys.stderr, "\t", ctype, "is", clength, "bytes long."
local = open( fname, "wb" )
last = 0
size = 0
for b in remote:
size += len( b )
pos = int( size * 79 / clength )
if pos > last:
last = pos
sys.stderr.write( "#" )
local.write( b )
# for b in remote
sys.stderr.write( "\n" )
remote.close()
local.close()
except Exception, e:
print >> sys.stderr, "Unknow error: ", e