【问题标题】:Best way to check if Python program is connected to the Internet?检查 Python 程序是否连接到 Internet 的最佳方法?
【发布时间】:2014-12-10 19:13:29
【问题描述】:

我正在使用python-requests,并注意到它在未连接到 Internet 时无法获取网页后返回不相关的错误。

documentation 提到了异常,但没有提到如何使用它们。程序应该如何验证它确实是连接的,如果没有则很好地失败?

我目前没有错误处理系统,这就是我得到的:

File "mem.py", line 78, in <module>
    login()
  File "mem.py", line 38, in login
    csrf = s.cookies['csrftoken']
  File "/usr/local/lib/python2.7/site-packages/requests/cookies.py", line 276, in __getitem__
    return self._find_no_duplicates(name)
  File "/usr/local/lib/python2.7/site-packages/requests/cookies.py", line 331, in _find_no_duplicates
    raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path))
KeyError: "name='csrftoken', domain=None, path=None"

【问题讨论】:

标签: python python-2.7 python-requests


【解决方案1】:

python-requests 中似乎默认不会引发 HTTP 错误。这个答案很好地总结了它:https://stackoverflow.com/a/24460981/908703

import requests

def connected_to_internet(url='http://www.google.com/', timeout=5):
    try:
        _ = requests.get(url, timeout=timeout)
        return True
    except requests.ConnectionError:
        print("No internet connection available.")
    return False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多