python爬虫之URLError、HTTPError以及requests中的SSLError

python爬虫时,我们在使用urlopen()或者opener.open()发出请求时,如果这个请求无法得到处理,那么,就会产生错误。常见的错误有URLError、HTTPError以及requests中的SSLError,下面我们来一一结束。

URLError

    产生原因:

        1,没有网络连接

        2,服务器连接失败

        3,找不到指定的服务器

    我们可以使用try....except....来捕获异常,如下所示:

    

    结果如下:

    <urlopen error [Errno 8] nodename nor servname provided, or not known>

    原因是找不到指定的服务器

HTTPError

HTTPError是URLError的子类,我们在发送http请求时,服务器上都会有一个应答对象,其中,会包含一个响应状态码。如果能处理的,会产生一个HTTPError,对应相应的状态码,HTTP状态码表示HTTP协议所返回的响应的状态。其中,100-299表示成功,以3开头的表示重定向,400-599表示失败。


结果为:

404
HTTP Error 404: Not Found

表示服务器无法找到请求,出现这种结果的原因,要么url错误,要么ip被封!

SSLError

requests请求时,如果对方网站是https的,往往需要验证证书。如果SSL证书验证不通过,或者不信任服务器的安全证书,则会报出SSLError。如12306网站。

此时,如果我们又想访问此网站,又不想验证,应该怎么办?我们可以跳过证书的验证。


猜你喜欢

转载自blog.csdn.net/codingforhaifeng/article/details/80508199
今日推荐