直接答案:20 个缓存联系页里,9 个站点有留言框表单(共 15 个表单)。这 9 个站点全部收手机号,6 个收邮箱、6 个收公司名、6 个有验证码;只有 2 个站点的表单带 required。但在表单内部,只有 1 个(E02)同时有隐私链接与同意词;页面层面也只有 2 个(E02、E11)有隐私链接。
第 36 期看的是“联系页有没有隐私入口”,这一期往下钻一层:留言表单到底收集什么、入口在不在表单里。
方法:留言表单按 textarea 识别
页面来自第 8 期 20 个联系页缓存。把页面拆成 <form> 块,只保留含 <textarea> 的表单作为“留言表单”;同一页多个表单分别检查,最后按站点合并。字段用 type / name / placeholder 匹配:邮箱、电话/手机、公司、验证码、文件上传、required。隐私链接与同意词只在表单块内部匹配。
| 项 | 规则 | 边界 |
|---|---|---|
| 留言表单 | form 内含 textarea | 不含搜索框、订阅框 |
| 字段 | type=email/tel、name 含 email/tel/phone/company、placeholder 含邮箱/电话/公司 | 不判断是否必填 |
| 验证码 | captcha / verify / 验证码 | 可能是第三方组件 |
| 表单内隐私 | form 块内 href 含 privacy/隐私,或同意词 | 页脚链接不算 |
结果:手机号 9/9,邮箱 6/9
| 信号 | 站点数(9) | 说明 |
|---|---|---|
| 手机号 / 电话 | 9 | E02、E06、E08、E11、E13、E17、E19、E23、E26 |
| 邮箱 | 6 | E02、E08、E13、E17、E19、E26 |
| 公司名 | 6 | E02、E06、E08、E19、E23、E26 |
| 验证码 | 6 | E02、E08、E11、E13、E17、E19 |
| 文件上传 | 0 | 留言表单里没有 file |
required 属性 | 2 | E06、E23 |
| 表单内隐私链接 | 1 | 仅 E02 |
| 表单内同意词 | 1 | 仅 E02 |
手机号是唯一全覆盖的字段;邮箱、公司、验证码各覆盖三分之二;required 只有 2 个站点使用。也就是说,“留个电话”是这批表单的共同点,但前端必填约束并不普遍。
表单内隐私入口:1/9
把范围缩到 form 块内部后,只有 E02 同时出现隐私链接与同意词。E11 在页面层面有隐私链接,但不在表单块内;E19 在页面层面有同意词,也不在表单块内。页面层面的 2 个隐私链接(E02、E11)并不等于表单内的 1 个。
这提示一个验收细节:隐私入口的位置比“有没有”更重要。如果链接只在页脚、而提交按钮在表单中部,访客在填写时未必看得到。
与第 36 期的关系
第 36 期在页面层面记录:20 个联系页里 15 个有表单、3 个有隐私链接、3 个有同意词、1 个有 checkbox。本期把“表单”缩到“含留言框的表单”,站点数变为 9;隐私链接在表单内只剩 1 个。两个口径不矛盾:页面层面有入口,不代表表单内部有。
对验收的启示
- 先看表单收集什么。 手机号 9/9,邮箱 6/9,字段范围要在验收表里写清。
- 必填约束要看前端。 只有 2 个站点用
required,其余可能靠后端或 JS 校验。 - 隐私入口按位置记。 表单内 1 个、页面层面 2 个,不能合并成一个数字。
- 验证码不是合规措施。 6 个站点有验证码,但它只防机器人,不替代告知与同意。
- 留言表单与搜索/订阅框分开。 不含 textarea 的表单不计入本期。
局限
- textarea 启发式:没有留言框但仍是询盘表单的页面会被排除。
- 字段名匹配:英文/拼音命名可能漏掉,占位符写法也会影响结果。
- 不执行 JS:动态插入的字段与校验看不到。
- 不提交表单:不验证后端校验与二次确认。
- 9 个站点 pilot:不外推行业。
数据与复算
匿名数据:equipment-contact-form-fields-2026.csv(9 行:sample_id、联系页 URL、留言表单数、邮箱/电话/公司/验证码/文件/隐私/同意标记、required 数)。仓库内为 docs/research/2026-11-contact-form-fields.csv。
解析:scripts/contact_form_probe.py;单元测试 scripts/test_contact_form_probe.py(10 项,无网络)。运行:
python -m unittest scripts.test_contact_form_probe
配套:联系页隐私入口 pilot(页面层面)、首页隐私入口 pilot、询盘路径 pilot。
数据来源与口径
- 联系页缓存:第 8 期 20 个联系页(原始 HTML 仅存站外)。
- 表单口径:form 内含 textarea;字段按 type/name/placeholder 匹配。
- 扫描时间:2026-11-03,零网络请求;未提交任何表单。