urllib_error异常处理

2018-12-23  本文已影响0人  宁que
# urllib.error : 在发起请求的过程中,可能会因为各种情况
# 导致请求出现异常,因而导致代码崩溃,所以我们悬疑处理这些异常的请求


from urllib import error,request

# error.URLError

def check_urlerror():
    '''
    1.没有网络
    2.服务器连接失败
    3.找不到指定服务器
    :return:
    '''
    url = 'http://www.baiduxxx.com/'
    try:
        response = request.urlopen(url)
        print(response.status)

    except error.URLError as err:
        #[Errno-2] Name or service not known(未知服务器)
        #timed out:请求超时
        #[Errno-3]Temporary failure in name resolution (没网)
        print(err.reason)
check_urlerror()

def check_httperror():
    """
    处理认证或则请求失败的错误
    例如:出现404表示页面未找到等
    code:返回的HTTP状态码
    reason:返回的错误原因
    headers:返回的请求头
    :return:
    """
    req_url = 'https://www.qidian.com/all/nsacnscn.htm'

    try:
        response = request.urlopen(url=req_url)
        print(response.status)
    except error.HTTPError as err:
        """
        Not Found (reason)
        404 (code)
        Server: nginx (headers)
        Date: Mon, 19 Nov 2018 13:36:11 GMT
        Content-Type: text/html; charset=utf-8
        Content-Length: 15616
        Connection: close
        """
        print('===', err.reason,err.code,err.headers)

check_httperror()
上一篇下一篇

猜你喜欢

热点阅读