Je télécharge un vaste ensemble de fichiers avec le code suivant dans une boucle:comment le temps grâce à tout téléchargement avec python
try:
urllib.urlretrieve(url2download, destination_on_local_filesystem)
except KeyboardInterrupt:
break
except:
print "Timed-out or got some other exception: "+url2download
Si le temps-out serveur sur URL url2download lorsque la connexion est simplement initient , la dernière exception est gérée correctement. Mais parfois, le serveur a répondu, et le téléchargement est démarré, mais le serveur est si lent, que ça va prendre des heures, même pour un fichier, et finalement il retourne quelque chose comme:
Enter username for Clients Only at albrightandomalley.com:
Enter password for in Clients Only at albrightandomalley.com:
et se bloque juste là (même si aucun nom d'utilisateur/passworde est activé si le même lien est téléchargé via le navigateur).
Mon intention dans cette situation serait - passer ce fichier et aller à la suivante. La question est - comment faire cela? Existe-t-il un moyen, en python, de spécifier combien de temps durera le téléchargement d'un fichier, et si plus de temps est déjà passé, d'interrompre et d'avancer?
Ce que vous voyez, il est de demander au serveur d'authentification. Par défaut 'urllib.urlretrieve()' demandera à l'utilisateur d'entrer un nom d'utilisateur et un mot de passe. Si vous voulez éviter cela, vous pouvez créer une nouvelle classe dérivée de 'urllib.FancyURLOpener' et gérer vous-même cette" erreur ". –