这是我的代码
import requests
ping = requests.get('http://example.com')
ping.status_code
if ping.status_code==200:
print ("Online")
else:
print ("Offline")
它会ping http://example.com
。网站上线后,它会成功打印Online
。当网站离线时,我希望它打印Offline
,但它显示的是一条巨大的错误消息,其结尾为此行
Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd3f17372e8>: Failed to establish a new connection: [Errno -2] Name or service not known',))
如果网站离线,如何解决它以成功打印Offline
?
答案 0 :(得分:1)
您在请求本身时遇到错误。
ping = requests.get('http://example.com')
因此,如果服务器未响应您,则不会获得状态代码。 如果要检查主机是否关闭,则值得使用异常处理,因此当请求失败时,脚本不会因错误而关闭。以下代码应该可以工作。
import requests
try:
ping = requests.get('http://example.com')
print ("Online")
except:
print ("Offline")
答案 1 :(得分:1)
您可以通过如下修改代码来实现:
添加try
和except
机制。
import requests
try:
ping = requests.get('http://example.com')
ping.status_code
if ping.status_code==200:
print ("Online")
else:
print ("Offline")
except requests.exceptions.ConnectionError as e:
print("Offline")