Я загружаю огромный цикл файлов со следующим кодом в цикле:
try:
urllib.urlretrieve(url2download, destination_on_local_filesystem)
except KeyboardInterrupt:
break
except:
print "Timed-out or got some other exception: "+url2download
Если время ожидания сервера по URL-адресу url2download, когда соединение только начинается, последнее исключение обрабатывается правильно. Но иногда сервер отвечал, и загрузка начиналась, но сервер был настолько медленным, что даже часу понадобился бы даже один файл, и в итоге он возвращал что-то вроде:
Enter username for Clients Only at albrightandomalley.com:
Enter password for in Clients Only at albrightandomalley.com:
и просто висит там (хотя имя пользователя / пароль не доступно, если та же ссылка загружена через браузер).
Мое намерение в этой ситуации было бы - пропустить этот файл и перейти к следующему. Вопрос - как это сделать? Есть ли в python способ указать, как долго можно работать над загрузкой одного файла, и если больше времени уже потрачено, прерывать и идти вперед?