Ответ 1
Вот как я буду разбираться с составлением и загрузкой 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()