在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对我来说是新的。
答案 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"