如何为python的机械化设置超时值?

时间:2010-08-24 01:22:22

标签: python timeout mechanize

如何为python的机械化设置超时值?

3 个答案:

答案 0 :(得分:13)

Alex是正确的:mechanize.urlopen采用timeout参数。因此,只需插入一些seconds in floating pointmechanize.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()

答案 1 :(得分:3)

如果您使用的是Python 2.6或更高版本,以及mechanize的相应更新版本,mechanize.urlopen应该接受timeout=...可选参数,这似乎是您正在寻找的

答案 2 :(得分:1)

我相信

的内容
mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT = 100

将覆盖Mechanize使用的默认值。

相关问题