Settings
AyugeSpiderTools 设置允许您自定义所有 Scrapy 及 AyugeSpiderTools 组件的行为,包括核心、扩展、管道和蜘蛛本身。
若您还不清楚 Scrapy 设置的知识,请跳转至 Scrapy 文档查看教程。
以下内容主要介绍本库在具体场景下的配置示例:
VIT_DIR
Default: <project_dir>/<project_name>/VIT
项目运行配置 .conf 的路径,用于存放项目在不同场景下的配置,比如数据库链接配置。
logger
Default: loguru.logger
用于日志记录,可按需设置。可与 scrapy 中的 LOG_LEVEL 和 LOG_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
Warning
已在
3.13版本中删除DATABASE_ENGINE_ENABLED的配置,请使用ayugespidertools.utils.database来代替。
是否打开 database 引擎开关,用于数据入库前更新逻辑判断。如果是 mysql 场景,打开此项会激活 mysql_engine 和 mysql_engine_conn;如果是 postgresql 场景,打开此项会激活 postgres_engine 和 postgres_engine_conn;
APP_CONF_MANAGE
Default: False
开启远程配置服务,支持 consul 和 nacos 工具,配合 VIT_DIR 中的 .conf 中的对应 consul 或 nacos 链接配置使用。如果两者都有,那优先取值 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,
}
这是使用 aiohttp 的 yield AiohttpRequest 来代替 scrapy 的 yield Request 和 yield 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 的部分文档。