2010-08-24 2 views

답변

13

알렉스가 맞습니다. mechanize.urlopentimeout 인수를 취합니다. 따라서 seconds in floating point : mechanize.urlopen('http://url/', timeout=30.0)의 숫자를 삽입하기 만하면됩니다.

mechanize.urlopen의 소스에서 배경 :

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

무엇 mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT 물어? 단지 socket 모듈 설정입니다.

import socket 

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

좋은 오래된'br.open()'은 timeout 매개 변수도 가지고있는 것 같습니다 : https://github.com/jjlee/mechanize/blob/b1d786906946f0193051920a7c716b339bd7bf95/mechanize/_mechanize.py#L200 – Mikeumus

3

Python 2.6 이상을 사용하고 해당 업데이트 버전이 mechanize 인 경우 mechanize.urlopentimeout=... 옵션 인수를 허용해야합니다.

1

나는 기계화가 사용하는 기본 값을 대체합니다

mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT = 100 

의 라인을 따라 뭔가를 생각합니다.

관련 문제