繁体   English   中英

Python-请求异常变量超时

[英]Python - request exceptions variable timeout

使用以下代码在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对我来说是新的。

是的,您可以将超时作为请求的参数添加。 文档中,您可以阅读:

超时时间

您可以使用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 )和一些注释表明,在较早的阶段您的代码可能存在问题,示例代码中未包含这些错误。

关于缩进 :在所有编程语言中,缩进都是一件大事。 在大多数语言中,它严格地修饰,除了使代码可读之外,没有其他用途。 但是在python中,缩进具有语义上的含义,女巫使其完成方式变得很重要。 只要您与所使用的缩进一致(在您的情况下为2个空格)就在语法上是正确的,但是大多数python程序员倾向于(正确地)遵守Python代码样式指南(pep8) ,该声明指出缩进应为每个缩进级别4个空格完成。

也许这会对您有所帮助。

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")

我尝试了这个及其工作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM