"""
@author: luojunhui
"""
import json

from applications import log


class SpiderError(Exception):
    """数据库查询异常"""

    def __init__(self, error=None, spider=None, url=None):
        """
        :param error: 异常对象，可选，用于提供更详细的错误信息。
        :param spider: 爬虫任务
        """
        error_obj = {
            "error": str(error),
            "spider": spider,
            "message": "爬虫接口请求失败",
            "url": url
        }
        log(
            task="spider_task",
            function="log_spider_error",
            data=error_obj
        )
        super().__init__(json.dumps(error_obj, ensure_ascii=False, indent=4))