class SpiderError(RuntimeError): def __init__(self): super(SpiderError, self).__init__() def __str__(self): return "一个未知的爬虫错误" class SpiderTaskTypeError(SpiderError): def __init__(self, task): super(SpiderTaskTypeError, self).__init__() self.task = task def __str__(self): return "Task的类型: %s 不受支持" % self.task class SpiderNotFond(SpiderError): def __init__(self, id): super(SpiderNotFond, self).__init__() self.id = id def __str__(self): return "id: %s 的页面并不存在" % str(self.id) class SpiderReFailed(SpiderError): def __init__(self, id, error): super(SpiderReFailed, self).__init__() self.id = id self.err = error def __str__(self): return "id: %s 的页面在正则识别id/title的时候出错, 具体错误如下:\n%s" % (str(self.id), str(self.err))