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