Settings

AyugeSpiderTools 设置允许您自定义所有 ScrapyAyugeSpiderTools 组件的行为,包括核心、扩展、管道和蜘蛛本身。

若您还不清楚 Scrapy 设置的知识,请跳转至 Scrapy 文档查看教程。

以下内容主要介绍本库在具体场景下的配置示例:

VIT_DIR

Default: <project_dir>/<project_name>/VIT

项目运行配置 .conf 的路径,用于存放项目在不同场景下的配置,比如数据库链接配置。

logger

Default: loguru.logger

用于日志记录,可按需设置。可与 scrapy 中的 LOG_LEVELLOG_FILE一同设置。

logger.add(
    "logs/error.log",
    level="ERROR",
    rotation="1 week",
    retention="7 days",
    enqueue=True,
)

LOGURU_ENABLED

Default: True

是否开启 loguru 日志记录功能,开启时 slog.<Log levels>("This is a log.")。 具体的说明请在 logging 中查看。

DATABASE_ENGINE_ENABLED

旧配置名:MYSQL_ENGINE_ENABLED,已删除此配置名称

Default: False

是否打开 database 引擎开关,用于数据入库前更新逻辑判断。 如果是 mysql 场景,打开此项会激活 mysql_enginemysql_engine_conn; 如果是 postgresql 场景,打开此项会激活 postgres_enginepostgres_engine_conn;

APP_CONF_MANAGE

Default: False

开启远程配置服务,支持 consulnacos 工具,配合 VIT_DIR 中的 .conf 中的对应 consulnacos 链接配置使用。 如果两者都有,那优先取值 consul,即优先级 consul 大于 nacos

AIOHTTP_CONFIG

Default:

{
    # 设置 aiohttp.TCPConnector 中的配置
    "verify_ssl": None,
    "fingerprint": None,
    "use_dns_cache": None,
    "ttl_dns_cache": None,
    "family": None,
    "ssl_context": None,
    "ssl": None,
    "local_addr": None,
    "resolver": None,
    "keepalive_timeout": None,
    "force_close": None,
    "limit": None,
    "limit_per_host": None,
    "enable_cleanup_closed": None,
    "loop": None,
    "timeout_ceil_threshold": None,
    # 设置一些自定义的全局参数
    "sleep": None,
    "retry_times": None,
}

这是使用 aiohttpyield AiohttpRequest 来代替 scrapyyield Requestyield FormRequest 来发送请求的功能; 其中的全局配置默配置全为 None,代表如果不配置其值或配置为 None 会使用 aiohttp request 的默认值,默认值示例如下:

# 除了 sleep 和 retry_times,其它配置的字段及其默认值和 aiohttp 的 aiohttp.TCPConnector 保持一致。
verify_ssl: bool = True,
fingerprint: Optional[bytes] = None,
use_dns_cache: bool = True,
ttl_dns_cache: Optional[int] = 10,
family: int = 0,
ssl_context: Optional[SSLContext] = None,
ssl: Union[bool, Fingerprint, SSLContext] = True,
local_addr: Optional[Tuple[str, int]] = None,
resolver: Optional[AbstractResolver] = None,
keepalive_timeout: Union[None, float, object] = sentinel,
force_close: bool = False,
limit: int = 100,
limit_per_host: int = 0,
enable_cleanup_closed: bool = False,
loop: Optional[asyncio.AbstractEventLoop] = None,
timeout_ceil_threshold: float = 5,

使用 aiohttp 来发送请求时,这个 AIOHTTP_CONFIG 及其子项不是必须参数,按需设置即可。现可使用统一的 yield AiohttpRequest 方式,且与 aiohttp 一样的请求参数来更方便地开发。

具体示例请查看 downloader-middleware 的部分文档。