Pregunta newbie sobre sockets y urllib2

tny a.porrua en gmail.com
Jue Dic 13 11:53:29 CET 2007


El jue, 13-12-2007 a las 09:17 +0100, Gustavo Ces escribió:
> 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

¿has mirado algo de gestión de errores?

try:    #intentar...
   pass	#lo que sea
except: #en caso de error...
   pass #lo que sea

------------ próxima parte ------------
_______________________________________________
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