我的Python代码有什么问题,如何修复?

我的Python代码有什么问题,如何修复?,python,python-requests,ping,Python,Python Requests,Ping,这是我的密码 import requests ping = requests.get('http://example.com') ping.status_code if ping.status_code==200: print ("Online") else: print ("Offline") 它发出pingshttp://example.com。当网站在线时,它会成功地在线打印。当网站离线时,我希望它打印离线,但它却向我显示了一条以这行结尾的巨大错误消息 Max retr

这是我的密码

import requests
ping = requests.get('http://example.com')
ping.status_code

if ping.status_code==200:
    print ("Online")
else:
    print ("Offline")
它发出pings
http://example.com
。当网站在线时,它会成功地在线打印
。当网站离线时,我希望它打印
离线
,但它却向我显示了一条以这行结尾的巨大错误消息

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',))
url:/(由NewConnectionError(“:无法建立新连接:[Errno-2]名称或服务未知,”)导致的重试次数超过了最大值
如果网站处于脱机状态,如何将其修复为成功脱机打印?

请求本身出现错误

ping = requests.get('http://example.com')
所以,若服务器并没有响应你们,你们就不会得到状态码。 若您想检查主机是否停机,那个么使用异常处理是值得的,这样当请求失败时,您的脚本不会因为错误而停机。下面的代码应该可以工作

import requests
try:
    ping = requests.get('http://example.com')
    print ("Online")
except:
    print ("Offline")

您可以通过如下方式修改代码来完成此操作:

添加
尝试
除了
机制

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

我认为您需要使用try-catch,如果您捕获到异常,您知道它是脱机的,否则它是联机的。您可能希望将对
try/catch
函数的调用包装在
try-except
块中以处理此情况。欢迎随时使用。值得一提的是,对于这个特殊的脚本,如果网站响应任何错误(如500404等),脚本仍然会响应“在线”。因此,您可能仍然应该包括您的状态代码检查。