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

时间:2019-03-06 14:44:44

标签: 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")

它会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

2 个答案:

答案 0 :(得分:1)

您在请求本身时遇到错误。

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

因此,如果服务器未响应您,则不会获得状态代码。 如果要检查主机是否关闭,则值得使用异常处理,因此当请求失败时,脚本不会因错误而关闭。以下代码应该可以工作。

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

答案 1 :(得分:1)

您可以通过如下修改代码来实现:

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