Pregunta newbie sobre sockets y urllib2

Gustavo Ces g.ces en pettra.es
Jue Dic 13 09:17:44 CET 2007


Saludos,

    Estoy haciendo un script para acceder a una url iterando ( cambiando algunos parametros en cada iteración). El problema es que suelo obtener un error de Socket Time Out 10060, que a veces se produce antes y otras veces después. Puede que sea una forma de defenderse del servidor ( como veis no tengo mucha idea de servidores web), o bien que hay veces que mis consultas se intercalan con las de otros, el caso es que llegado un momento me salta ese mensaje y si vuelvo a ejecutar el script suele saltar antes ( en menos iteraciones, quiero decir). He probado introduciendo lapsos de tiempo cada x iteraciones, pero no encuentro un patrón ( probablemente por lo que decía antes de que mis consultas se intercalan con las de otros usuarios mientras que otras veces solo estoy yo) : a veces salta antes, a veces después.
    También he pensado que puede que sea un simple fallo al intentar el acceso y que lo que debería hacer es introducir en mi código una forma de reintentar en caso de fallar la conexión :

    for direccion in lista :
        sock=urllib2.urlopen(direccion)
        pagina= sock.read()
        sock.close()
        html=BeautifulSoup(pagina)
    
 Así es como está ahora. La pregunta es, ¿ cúal sería la mejor manera de introducir ese "reintenta hasta que la conexión sea exitosa? ¿ qué metodo o propiedad del socket he de comprobar para saberlo?
    Gracias adelantadas por las respuestas,

Gus
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es