这是我处理URL构建和下载的方式。我确保将文件命名为url的基本名称(后跟斜杠后的最后一位),并且我还使用该with
子句来打开要写入的文件。这使用了一个很好的ContextManager,因为它将在该块退出时关闭该文件。另外,我使用模板来构建URL字符串。urlopen
不需要请求对象,只需一个字符串。
import os
from urllib2 import urlopen, URLError, HTTPError
def 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.code, url
except URLError, e:
print "URL Error:", e.reason, url
def 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()