¿Cómo establezco un valor de tiempo de espera para mecanizar python?

¿Cómo establezco un valor de tiempo de espera para mecanizar python?

Alex tiene razón: mechanize.urlopen toma un argumento de timeout . Por lo tanto, solo inserte un número de segundos en punto flotante : mechanize.urlopen('http://url/', timeout=30.0) .

El fondo, desde la fuente de mechanize.urlopen :

 def urlopen(url, data=None, timeout=_sockettimeout._GLOBAL_DEFAULT_TIMEOUT): ... return _opener.open(url, data, timeout) 

¿Qué es mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT que preguntas? Es sólo la configuración del módulo de socket .

 import socket try: _GLOBAL_DEFAULT_TIMEOUT = socket._GLOBAL_DEFAULT_TIMEOUT except AttributeError: _GLOBAL_DEFAULT_TIMEOUT = object() 

Si está utilizando Python 2.6 o superior, y una versión correspondiente de mechanize , mechanize.urlopen debería aceptar un argumento opcional timeout=... que parece ser lo que está buscando.

Creo algo en la linea de

 mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT = 100 

anulará el valor predeterminado que usa Mechanize.