爬虫异常处理
1.常见状态码及含义
301 重定向到新的url,永久性
302 重定向到临时url,非永久性
304 请求的资源未更新
400 非法请求
401 请求未经授权
403 禁止访问
404 没有找到对应页面
500 服务器内部出现错误
501 服务器不支持实现请求所需要的功能
2.URLError和HTTPError
均为处理异常的类,HTTPError是URLError的子类,HTTPError有异常码和异常原因,URLError没有异常码
所以,在处理的时候,不能使用URLError直接代替HTTPError,如需代替,必须判断是否有状态码属性
# 异常处理 ''' URLError出现的原因 1)连不上服务器 2)远程url不存在 3)无网络 4)触发HTTPERrror ''' import urllib.request import urllib.error try: urllib.request.urlopen("https://blog.csdn.net/") except urllib.error.URLError as err: if hasattr(err,"code"): #判断状态码和原因 print(err.code) if hasattr(err,"reason"): print(err.reason)