Python - 请求异常变量超时

时间:2015-07-02 15:35:20

标签: python exception

在python中使用请求模块时使用以下代码

try:
    r = requests.get('http://somerandomurl.com', cookies=cookies, headers=headers, proxies=proxies)
except requests.exceptions.Timeout:

我收到此错误

except requests.exceptions.Timeout:
         ^
SyntaxError: invalid syntax

我是否可以指定一个变量超时,如果超时请求将重复该超时? Python对我来说是新的。

3 个答案:

答案 0 :(得分:0)

您可以将超时作为参数添加到请求中。在documentation中,您可以阅读:

  

<强>超时

     

您可以告诉请求在给定后停止等待响应   timeout参数的秒数:

requests.get('http://github.com', timeout=0.001)
  Traceback (most recent call last):
File "<stdin>", line 1, in <module>
requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)

然而我认为这不会解决您的问题。由于错误(SyntaxError: invalid syntax)和一些评论表明您的代码在某些早期阶段可能存在问题,但未包含在您的示例代码中。

关于缩进:缩进是所有编程语言中的一个重大政治因素。在大多数语言中,它具有严格的cosmetical,除了使代码可读之外没有其他用途。但是在python中,缩进具有语义含义,使得它的重要性如何。只要你与你使用的缩进(在你的情况下是2个空格)一致,它在语法上是正确的,但大多数python程序员倾向于(理所当然地)遵守Style Guide for Python Code (pep8),其中指出缩进应该用<每个缩进级别> em> 4个空格。

答案 1 :(得分:0)

也许这会对你有帮助。

try:
    res = requests.get(adress,timeout=30)
except requests.ConnectionError as e:
    print("OOPS!! Connection Error. Make sure you are connected to Internet. Technical Details given below.\n")
    print(str(e))            
except requests.Timeout as e:
    print("OOPS!! Timeout Error")
    print(str(e))
except requests.RequestException as e:
    print("OOPS!! General Error")
    print(str(e))
except KeyboardInterrupt:
    print("Someone closed the program")

答案 2 :(得分:-1)

我试过这个及其工作

>>> try:
...     r = requests.get('http://somerandomurl.com', cookies=cookies, headers=headers, proxies=proxies)
... except requests.exceptions.Timeout:
...     print "exception"