# 复核页面本地验收工具 ## 复核 HTML Smoke 诊断流程样例 ### 入口 ```bash python3 /Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/review_html_smoke.py \ --html /Users/bytedance/Documents/job-bu/data-analysis-workspace/adhoc/2026-05-12_人工客服原声商品域标签对齐/output/人工客服原声_商品域v26对齐复核_2026-05-12_v1.html \ --source /Users/bytedance/Documents/job-bu/data-analysis-workspace/adhoc/2026-05-12_人工客服原声商品域标签对齐/output/商品域v26对齐明细.xlsx \ --expected-count 2201 \ --required-text 定邀/报白/白名单准入 \ --required-text 商品类目 \ --forbid-text 旧子领域 \ --serve-and-open ``` ### 输入来源 | 输入 | 用途 | | --- | --- | | HTML 文件 | 检查页面结构、内嵌 payload、JS 语法、关键文案 | | Excel/CSV/JSONL 源表 | 对照明细行数、标签字段、原始行号和抽样 session | | CLI 参数 | 声明期望条数、必含标签、禁用标签、是否启动本地 HTTP 服务 | ### 核心检查 1. 文件级:HTML 存在、非空、标题和主体容器存在。 2. Payload:自动识别 `window.__DATA__`、`const xxx = [...]` 或 script JSON blob,解析失败立即报 `PAYLOAD`。 3. 数据级:明细数等于 `--expected-count`,源表与 HTML payload 抽样一致。 4. 页面级:存在左侧筛选、标签汇总、右侧 session 卡片、用户/客服气泡、原始行号。 5. 标签级:`--required-text` 必须出现,`--forbid-text` 不得出现。 6. 浏览器级:优先用内嵌浏览器打开 HTTP 本地地址;`file://` 被拦截时不算页面失败,但必须记录降级结果。 ### 成功信号 ```text SMOKE_OK html=... rows=2201 payload=ok dom=ok labels=ok browser=http://127.0.0.1:8127/... ``` ### 失败信号 ```text COUNT expected=2201 actual=2194 source=html_payload LABEL forbid_text_found text=旧子领域 count=17 PAYLOAD parse_failed candidate=const DATA reason=not_found tried=window.__DATA__,script[type=application/json],regex_assignments BROWSER file_scheme_blocked fallback_url=http://127.0.0.1:8127/... ``` ### 建议落地 把 smoke log 放在 HTML 同目录,例如 `review_html_smoke_2026-05-12.log`。最终回复用户时只说:页面路径、口径、smoke 是否通过、如果浏览器未验收则说明降级原因。