我的 Python 代码有什么问题,我该如何解决?

What is wrong with my Python code and how can I fix it?

这是我的代码

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

您收到请求本身的错误。

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

因此,如果服务器没有响应您,您将不会获得状态代码。 如果你想检查主机是否宕机,使用异常处理是值得的,这样当请求失败时,你的脚本不会因错误而宕机。以下代码应该可以工作。

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

您可以通过如下修改代码来做到这一点:

添加tryexcept机制。

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