CRS 内部控制台 · 域名

news.example.twsampler:domain_rule

verdict = csr · 判定确认于 2026-08-11T09:20:04Z

回调给调度器的字段

CONTRACT.md §三 POST scheduling-url/v1/rules · 这些字段离开本服务后由调度器执行

field字段value取值executed by谁执行
domain域名news.example.tw
verdict判定结论csr调度器:正常入队
verified_at判定确认时间2026-08-11T09:20:04Z幂等键的一半
wait_selector.article-body下载器:等待策略第一档
lang语种zh-Hant下载器透传进网页对象
regionTW同上
jurisdiction法域TW同上
min_interval_ms最小请求间隔(毫秒)2000调度器出队限速 + 下载器本地保险
disallow_prefix_list["/admin", "/api/"]调度器执行,入队前与 lease 前各校验一次
list_link_ratio0.05调度器:判断能否靠纯 HTTP 提链接
verdict_reason判定结论说明五个样本 text_ratio 一致偏低,骨架特征命中 __NEXT_DATA__自由文本,不参与任何分支

⚠️ min_interval_ms = max(crawl_delay, 语种默认值),本服务已经取过一次 max。调度器与下载器直接用,禁止再取一次 max。本域名 robots 的 Crawl-delay: 2 大于语种默认 1000ms,所以是 2000。

⚠️ disallow_prefix_list 必须回传。下载器不开 --obey-robots,执行者只有调度器。契约不传则 robots 的 Disallow 全系统无人执行。

⚠️ verified_at 是幂等键的一半(domain + verified_at),必须单调。调度器收到更旧的值应丢弃并返回 200。

⚠️ list_link_ratio 只取自列表页样本,与正文无关。极低说明该域名列表页链接靠 JS 注入,调度器不能靠纯 HTTP 提链接,必须等渲染后的 link_list

判定依据

DEV-sampler.md §四 · 一次 /v1/render 调用同时拿到双取两侧,请求量减半

两个 ratio

ratiomedian中位数definition分子 / 分母
text_ratio0.052raw_text_length / text_length越低越 CSR,反直觉;分母为 0 时取 null
link_ratio0.095(link_countjs_injected_link_count) / link_count;分母为 0 时取 null
list_link_ratio0.050同上,但只取自列表页样本

样本

field字段value取值
page_sample_count本域名采样页数5
样本来源sitemap.xml
列表页样本(单独采)1
骨架特征命中__NEXT_DATA__

⚠️ page_sample_count 是「这个域名采了几页」,不是调度器的 statistic_sample_count(滑动中位数里有几条样本)。两者曾被合并成同一个 sample_count,是本系统要防的事故本身 —— 一个是统计窗口宽度,一个是渲染成本单位,合并后调优会被误读成统计精度问题。

⚠️ 多样本合并取中位数而非平均值 —— 单个异常页不应带偏判定。样本间分歧极大时判 partial,记入 verdict_reason

⚠️ 列表页单独采样,不参与 text_ratio 判定 —— 它链接多正文少会让 ratio 失真。但它的 link_ratio 有独立价值,即 list_link_ratio

⚠️ 骨架特征只用于加速,不用于否定。不满足特征的域名仍走完整判定。

ratio 历史

sampler:ratio_history:{domain} · 复核比对用,按条数或时间裁剪

verified_at判定确认时间 trigger触发来源 text_ratiolink_ratio page_sample_count采样页数 verdict判定结论
2026-08-11T09:20:04Z定期0.0520.0955csr
2026-07-14T02:38:51Z调度器 recheck0.0610.1025csr
2026-07-02T03:44:16Z首次判定0.0580.0985csr

⚠️ 规则表里的 ratio 是 3~5 样本的中位数不能直接与单页值比。复核要重新采样算中位数,否则一个异常页就能把结论翻过来。

⚠️ ratio 显著升高 = 改成了 SSR,回调 verdict=ssr;显著降低 = 更 CSR 或结构变了,更新数值并重推 wait_selector渲染后为空 = 站点挂了或加了反爬,判 unknown 进待定池,不立即改判

域名级 URL 规范化规则

DEV-sampler.md §五 · 与 wait_selector、disallow_prefix_list、min_interval_ms 同一所有者

rule规则effect作用
?sort= 不影响内容归入同一 canonical_group_hash
?page= 不影响内容同上

⚠️ 这些规则只用于归并、判断是否重复抓取,不改变 url_hashurl_hash 只由全局规范化那五条算出,全局层冻结、永不改动。这样规则变更只影响归并组,主键纹丝不动,全库永远不用重建

⚠️ 全局规范化不碰任何业务 query?id=123 这类路由参数一律保留 —— 很多 CSR 站路由依赖它。

相关

同一域名在其他表里的记录

where位置keyactions操作
robots 规则sampler:robots_rule:news.example.tw查看
判定任务已完成即删,无记录任务列表
提交复核POST /v1/domains,reason = recheck复核
域名列表sampler:domain_rule返回列表

⚠️ 调度器侧的 scheduler:domain_rule_replica本表的只读副本,写方在本服务。副本表名带 _replica 并注明只读,两者不可互相赋值。

⚠️ 本页不显示该域名的抓取量、健康状态、熔断原因。那些在调度器与下载器,契约里没有本服务读取它们的边。