【问题标题】:Retry opening website in Python when there is a timeout超时时重试在 Python 中打开网站
【发布时间】:2014-02-24 12:01:44
【问题描述】:

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

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

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

正如我之前所说,我不知道为什么有时连接会失败,这可能与我试图通过大学无线连接进行此操作有关。这就是为什么我想在超时时重试建立连接。

【问题讨论】:

  • 请记住,站点可能认为您的“大量连接”是拒绝服务攻击,而不是您的无线连接,如果您继续进行,它们最终可能会完全阻止您的 IP。你读过他们的 robots.txt 吗?
  • 我不知道 robots.txt 是什么。我现在检查了它,但我不知道该怎么做。有问题的网站是oddsportal.com

标签: python timeout urllib2


【解决方案1】:
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 块处理它,你应该是金子。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 2020-01-26
    • 2016-08-10
    • 2016-08-26
    • 2013-02-17
    • 2021-05-12
    相关资源
    最近更新 更多