当超时时,在Python中重试打开网站

时间:2014-02-24 12:01:45

标签: python timeout urllib2

我打开了很多与网站的联系。我不知道为什么,但是现在连接超时了?

subpage=html.fromstring(urllib2.urlopen(subpage_url,timeout=5).read())

我现在使用urllib2库,因为你可以设置超时,之前我使用了urllib,没有设置超时时间,所以当连接失败时你不得不等待很长时间。

正如我之前所说,我不知道为什么连接有时会失败,也许这与我试图通过大学无线连接这样做的事实有关。这就是我想在超时时重试建立连接的原因。

1 个答案:

答案 0 :(得分:0)

from time import time
data = ''
started = time()
while data == '' and time() - started < 30:
    data=html.fromstring(urllib2.urlopen(subpage_url,timeout=5).read())
if len(data) <= 0:
    print('Failed to retrieve your page 6 times, check your internet connection!')

你可能会在这里得到一个例外,用try块处理它,你应该是金色的。