2010-08-24 8 views

cevap

13

Alex doğru: mechanize.urlopen, bir timeout bağımsız değişkenini alır. Bu nedenle, yalnızca seconds in floating point: mechanize.urlopen('http://url/', timeout=30.0) numaralarını ekleyin.

mechanize.urlopen kaynağından arka plan,:

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

nedir mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT sorabilir? Sadece socket modülünün ayarı.

import socket 

try: 
    _GLOBAL_DEFAULT_TIMEOUT = socket._GLOBAL_DEFAULT_TIMEOUT 
except AttributeError: 
    _GLOBAL_DEFAULT_TIMEOUT = object() 
+0

İyi eski 'br.open()' de bir zaman aşımı parametresi var gibi görünüyor: https://github.com/jjlee/mechanize/blob/b1d786906946f0193051920a7c716b339bd7bf95/mechanize/_mechanize.py#L200 – Mikeumus

3

, mechanize.urlopen aradığınız şey gibi görünüyor bir timeout=... isteğe bağlı argüman kabul etmelidir.

1

Ben makineleştirmek kullanan varsayılan değeri geçersiz kılar

mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT = 100 

çizgisinde bir şey düşünüyoruz.

İlgili konular