爬虫异常处理

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)

 

posted @ 2019-07-26 18:04  Peach~  阅读(432)  评论(0编辑  收藏  举报