跳转至

设置字段语义对照

类型:wiki(知识沉淀) 描述:settings 全部字段的实际语义、对应源码、易混淆点 — 改 UI 前必查 最后更新:2026-05-26(v0.10.14) 相关源码src/utils/storage-data.tsSettingParams interface + DefaultSettings相关 rulesdocs/rules/settings-change-pre-check.md 相关 wikishared-queue-architecture.md

是什么

settings 字段一览表 + 实际语义 + 字段名暗示与真实的差异 + 调度器在哪读它。

字段分类

SettingParams = {
  搜索 (1)
  地图抓取并发 (5) ← 历次踩坑高发区
  任务调度 (1)
  网站抓取并发 (5) ← v0.10.14 踩坑
  解析规则 (3)
  数据过滤 (5)
  解析层开关 (12) ← v0.10.13 新加
  内页跟随 (5) ← v0.10.13/14 新加
}

全字段表

搜索

字段 类型 实际语义 字段名暗示 ↔ 真实
searchLanguge string Google Maps URL 的 hl= 参数 ✅ 名实一致
searchCountry string Google Maps URL 的 gl= 参数("name" = 用国家名) ⚠️ "name" 不是国家代码

地图抓取并发

字段 类型 实际语义 字段名暗示 ↔ 真实 出处
maxConcurrentTasks int 1-10 activeTabs.size 全局上限 ❌ 「任务数」是错的,是 Tab 数 batch-controller.ts:27
pagerConcurrency int 1-5 全局翻页 Fetch 并发 ⚠️ 必含「全局」字样 batch-controller.ts:pumpPager
taskGapMin int sec 实开 Tab 之间间隔下限
taskGapMax int sec 实开 Tab 之间间隔上限
requestDelayMin int sec 翻页 Fetch 间隔下限
requestDelayMax int sec 翻页 Fetch 间隔上限

⚠️ 废弃requestConcurrency(v0.10.0+ 不再读,但 storage 保留兼容)

任务调度

字段 类型 实际语义 出处
maxConcurrentTasks int 同上(实际是 Tab 数) task-manager.ts:pumpTasks

注:maxConcurrentTasks 在调度器和 UI 都用,但语义统一是 Tab 上限

网站抓取并发

字段 类型 实际语义 字段名暗示 ↔ 真实 出处
deepScrapeConcurrency int 1-10 全局网站抓取 worker 线程数 ❌ 「网站数」是错的,是 worker 数 engine-manager.ts:getConcurrency
deepScrapeDomainConcurrency int 1-10 单域名最多几个 worker(防 DDoS 对方站) ✅ 但要明示 "per-hostname" engine-manager.ts:domainActive
scrapeDelayMin int sec 网站 worker 间间隔下限
scrapeDelayMax int sec 网站 worker 间间隔上限
scrapeTimeout int sec 单页加载超时

解析规则(基础)

字段 类型 实际语义
emailRegex string 留空 = 用默认;自定义则覆盖
phoneRegex string 留空 = 走智能 3 层级;自定义则完全覆盖层级
customSocials string 用户自定义社媒(每行 name\|regex\|color

数据过滤

字段 类型 实际语义
advParms string[] 去重 / 必填字段过滤 — multi-checkbox
minRating float 评分 < 此值跳过(0 = 不过滤)
minReviews int 评论 < 此值跳过(0 = 不过滤)
categoryBlacklist string Google 商家「分类」字段含此关键词跳过
domainBlacklist string 这些根域不进入网站抓取(在 engine-manager 过滤)

解析层独立开关(v0.10.13 新增)

字段 默认 实际语义
cloudflareDecode true Cloudflare data-cfemail 解码
emailBlacklistOn true 邮箱黑名单总开关
emailBlacklistCustom "" 用户追加(v0.10.14 起支持邮箱/域名两种写法)
emailNoiseOn true 噪音过滤(.png/.jpg/@sentry 等)
emailNoiseCustom "" 用户追加噪音模式(子串匹配)
randomIdFilter true 屏蔽超长随机 ID(>25 hex 用户名)
phoneTier1 true tel: 链接(高置信度)
phoneTier2 true 上下文关键词(Phone: / 电话:)
phoneTier3 true 自由文本(低置信度,最易噪)
phoneBlacklistCustom "" 用户追加测试号
socialBlacklistOn true 社媒 handle 黑名单
socialBlacklistCustom "" 用户追加 handle

内页跟随(v0.10.13/14 新增)

字段 默认 实际语义
scrapeDepth 1 1 / 2 / 3 跟随深度
followSubdomain false 允许跟同根域子域(false = 严格 hostname)
followKeywordsWhite "contact,about,..." 优先关键词白名单
followKeywordsBlack "blog,news,..." 排除关键词黑名单
followSkipAssets true 跳过 jpg/css/pdf 等资源
followAllowedDomains "" v0.10.14 跨根域白名单(公司多域名场景)

健康巡检 / 看门狗(v0.10.15 新增)

详见 tab-lifecycle-and-watchdog.md

字段 默认 范围 实际语义
watchdogEnabled true bool 总开关 — 关掉就只靠 60s 兜底,不推荐
watchdogInterval 5 2-30 分钟 巡检周期
watchdogStaleThreshold 5 2-30 分钟 单 tab 寿命阈值,超过判为僵尸
watchdogConsecutiveLimit 3 1-10 次 连续异常 → 强关窗口 + 重置调度器 + 通知
watchdogAutoResume true bool v0.10.23 核弹重启后自动 pumpTasks(不用手动点开始)
watchdogAutoResumeCooldownSec 10 0-600 秒 v0.10.24 重启后冷却(之前 60s,用户嫌慢)
watchdogAutoResumeMaxCycles 9999 1-99999 次 v0.10.24 默认无限(除非用户点停止);保守用户可调小如 3-5

"字段名暗示 vs 真实" 速查表

仅列出真实语义与字段名暗示不一致的字段(改 UI 时最易踩坑):

字段 名字暗示 真实 修正后 UI label
maxConcurrentTasks "任务数" Tab 上限 "实开 Tab 并发上限"
deepScrapeConcurrency "网站数" worker 数 "抓取并发上限(worker 线程数)"
requestConcurrency "请求并发" 已废弃 (UI 不显示)
pagerConcurrency "翻页并发" 全局 Fetch 上限 "翻页 Fetch 并发上限"

易踩坑

⚠️ 坑 1:字段名暗示 ≠ 真实

详见上表。改 UI 前必须查本表

⚠️ 坑 2:废弃字段还在 storage interface 里

requestConcurrency v0.10.0 起调度器不读,但 storage 保留兼容老用户数据。不要删,加 // deprecated 注释即可。

⚠️ 坑 3:手机自定义正则会"完全覆盖"3 层级

用户填 phoneRegex 时,Tier 1/2/3 开关全部失效。要在 UI helper 写明。

⚠️ 坑 4:黑名单分类不止一个

  • emailBlacklistCustom:邮箱级 / 域名级(v0.10.14 起)
  • domainBlacklist:根域名级 — 不进入抓取(engine-manager 过滤)
  • categoryBlacklist:Google 商家「分类」字段过滤(不是 URL)
  • socialBlacklistCustom:社媒 handle 名级
  • emailNoiseCustom:邮箱子串模糊匹配

5 个黑名单 ≠ 同一回事。UI 不要简称「黑名单」。

修改 SettingParams 时的 checklist

  • 加新字段 → 本文件加一行
  • 加默认值(保持老版本行为)
  • 字段名要与实际语义对齐 — 不要望文生义
  • UI label / helper 要写明「全局/per-X」
  • 加 yup schema(如果有强约束)
  • 老字段废弃 → 保留 + deprecated 注释
  • 写完同步本表

版本里程碑

版本 事件
v0.9.x 字段最初设计,per-task 心智
v0.10.0 共享队列重写,但字段名没改 → 埋下命名误导坑
v0.10.12 修正 maxConcurrentTasks UI 文案
v0.10.13 加 12 个解析层独立开关 + 5 个内页跟随字段
v0.10.14 修正 deepScrapeConcurrency UI + 加 followAllowedDomains