【问题标题】:Identify if a website is taking too long to respond确定网站是否需要很长时间才能响应
【发布时间】:2015-10-23 14:33:57
【问题描述】:

我需要查看网站是否响应时间过长。

例如,我需要确定这个网站有问题:http://www.lowcostbet.com/

我正在尝试这样的事情:

print urllib.urlopen("http://www.lowcostbet.com/").getcode() 

但我收到Connection timed out

我的目标只是创建一个例程来确定哪些网站加载时间过长。 (例如 4 秒,然后取消请求)

【问题讨论】:

标签: python python-2.7


【解决方案1】:

来自 urllib2 包的 urlopen 有超时参数。

你可以这样使用:

from urllib2 import urlopen

TO = 4
website = "http://www.lowcostbet.com/"

try:
    response = urlopen(website, timeout=TO)
except:
    mark_as_not_responsive(website)

更新:

请注意,按原样使用我的 sn-p 很糟糕,因为您会捕获所有类型的异常,而不仅仅是这里的超时。您可能需要多次尝试才能将网站标记为无响应。

【讨论】:

    【解决方案2】:

    另外,requests.get 有一个 timeout kwarg 你可以传入。 来自文档:

    requests.get('http://github.com', timeout=0.001)
    

    这将引发异常,因此您可能想要处理它。

    http://docs.python-requests.org/en/latest/user/quickstart/

    【讨论】:

      【解决方案3】:

      超时值将应用于 connectread 超时。指定一个 tupleif 想单独设置值:

      import requests
      
      try:
          r = requests.get('https://github.com', timeout=(6.05, 27))
      except requests.Timeout:
          ...
      except requests.ConnectionError:
          ...
      except requests.HTTPError:
          ... 
      except requests.RequestException:
          ...
      else:
          print(r.text)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-16
        • 1970-01-01
        • 1970-01-01
        • 2020-09-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多