mysql_model.py 2.26 KB
from datetime import datetime

# noinspection PyPackageRequirements
from tortoise import Model, fields

from app.schemas.spider_schema import TypeEnum


class SpiderModel(Model):
    """
    爬虫结果数据模型
    """

    id = fields.IntField(pk=True)
    time = fields.CharField(
        max_length=10,
        description="数据时间 yyyy-MM-dd 格式的字符",
        regex=r"^\d{4}-\d{2}-\d{2}$",
    )
    targetType = fields.IntEnumField(
        TypeEnum, description="数据类型", source_field="target_type"
    )
    platform = fields.CharField(max_length=255, description="平台名字 ALL TENCENT IQIYI YOUKU")
    sourceName = fields.CharField(
        max_length=255, description="媒体资源名字", source_field="source_name"
    )
    score = fields.FloatField(description="热度得分")
    createTime = fields.DatetimeField(
        default=datetime.now, description="创建时间", source_field="create_time"
    )
    updateTime = fields.DatetimeField(
        default=datetime.now, description="更新时间", source_field="update_time"
    )

    class Meta:
        table = "spider_data"


class XWebCrawler(Model):
    id = fields.BigIntField(pk=True, description="ID")
    code = fields.CharField(max_length=64, unique=True, description="标识(crawl_)")
    name = fields.CharField(max_length=255, description="名称")
    description = fields.TextField(null=True, description="描述")
    type = fields.IntField(default=0, description="类型0:普通;(待扩展)")
    proxy_mode = fields.IntField(
        default=0, description="代理模式0:不使用代理;(待扩展)"
    )
    status = fields.IntField(description="状态 0:关闭;1:启用;")
    cron = fields.CharField(
        max_length=32, description="执行周期,标准cron表达式(json)"
    )
    param_info = fields.TextField(null=True, description="参数信息")
    target_url = fields.CharField(max_length=1000, null=True, description="目标地址")
    sequence = fields.IntField(default=0, description="显示顺序")
    create_time = fields.DatetimeField(null=True, description="创建时间")
    update_time = fields.DatetimeField(null=True, description="更新时间")

    class Meta:
        table = "x_web_crawler"
        table_description = "爬虫表"