这是我处理URL构建和下载的方式。我确保将文件命名为url的基本名称(后跟斜杠后的最后一位),并且我还使用该
with子句来打开要写入的文件。这使用了一个很好的ContextManager,因为它将在该块退出时关闭该文件。另外,我使用模板来构建URL字符串。
urlopen不需要请求对象,只需一个字符串。
import osfrom urllib2 import urlopen, URLError, HTTPErrordef dlfile(url): # Open the url try: f = urlopen(url) print "downloading " + url # Open our local file for writing with open(os.path.basename(url), "wb") as local_file: local_file.write(f.read()) #handle errors except HTTPError, e: print "HTTP Error:", e.pre, url except URLError, e: print "URL Error:", e.reason, urldef main(): # Iterate over image ranges for index in range(150, 151): url = ("http://www.archive.org/download/" "Cory_Doctorow_Podcast_%d/" "Cory_Doctorow_Podcast_%d_64kb_mp3.zip" % (index, index)) dlfile(url)if __name__ == '__main__': main()


