from os.path import basenamefrom urlparse import urlsplitimport urllib,urllib2def url2name(url): return basename(urlsplit(url)[2])def download(url, localFileName = None): localName = url2name(url) req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"}) r = urllib2.urlopen(req) if r.info().has_key('Content-Disposition'): # If the response has Content-Disposition, we take file name from it localName = r.info()['Content-Disposition'].split('filename=')[1] if localName[0] == '"' or localName[0] == "'": localName = localName[1:-1] elif r.url != url: # if we were redirected, the real file name we take from the final URL localName = url2name(r.url) if localFileName: # we can force to save the file as specified name localName = localFileName f = open(localName, 'wb') f.write(r.read()) f.close()
下載檔案,一般可用urllib.urlretrieve(url,path,cbk)實現,但如果下載需要登入後的檔案,可利用Cookies和上面的程式段一起下載