Sto scaricando un enorme insieme di file con il codice riportato di seguito in un ciclo:come time-out con grazia durante il download con Python
try:
urllib.urlretrieve(url2download, destination_on_local_filesystem)
except KeyboardInterrupt:
break
except:
print "Timed-out or got some other exception: "+url2download
se il server di tempi-out url2download URL quando la connessione è solo avviando , l'ultima eccezione viene gestita correttamente. Ma a volte server ha risposto, e viene avviato il download, ma il server è così lento, che Sarà vogliono ore per anche un solo file, e alla fine restituisce qualcosa come:
Enter username for Clients Only at albrightandomalley.com:
Enter password for in Clients Only at albrightandomalley.com:
e si blocca proprio lì (anche se nessun nome utente/passworde viene richiesto se lo stesso collegamento viene scaricato tramite il browser).
La mia intenzione in questa situazione sarebbe: saltare questo file e passare a quello successivo. La domanda è: come si fa? C'è un modo in Python per specificare quanto tempo è OK per lavorare sul download di un file, e se più tempo è già trascorso, interrompere e andare avanti?
Quello che state vedendo si trova il server di chiedere per l'autenticazione. Di default 'urllib.urlretrieve()' chiederà all'utente di inserire un nome utente e una password. Se vuoi evitare questo, puoi creare una nuova classe derivata da 'urllib.FancyURLOpener' e gestirla da solo "errore". –