como tempo limite normal durante o download com python

Estou baixando um conjunto enorme de arquivos com o seguinte código em um loop:

try:
    urllib.urlretrieve(url2download, destination_on_local_filesystem)
except KeyboardInterrupt:
    break
except:
    print "Timed-out or got some other exception: "+url2download

Se o servidor atingir o tempo limite no URL url2download quando a conexão estiver apenas iniciando, a última exceção será tratada corretamente. Às vezes, porém, o servidor responde e o download é iniciado, mas o servidor é tão lento que leva horas para até um arquivo e, eventualmente, retorna algo como:

Enter username for Clients Only at albrightandomalley.com:
Enter password for  in Clients Only at albrightandomalley.com:

e simplesmente fica lá (embora nenhum nome de usuário / senha seja solicitado se o mesmo link for baixado através do navegador

Minha intenção nessa situação seria - pule este arquivo e vá para o próximo. A questão é - como fazer isso? Existe uma maneira em python especificar quanto tempo funciona o download de um arquivo e, se já houver mais tempo gasto, interrompa e prossiga?

questionAnswers(4)

yourAnswerToTheQuestion