不依赖 API key 的网页审查
做自动化审查的时候,大多数人第一反应是找 API。有 API 就有权限,有权限就能拿到数据,拿到数据就能做审查。
但有些场景,你不需要 API key 也能完成审查。而且不用 API key 的方案,反而更稳定、更可控。那次做 jianfei-github 的网页审查自动化,我走了一条不依赖任何 API key 的路,效果比预期好得多。
Playwright 能做什么
那次我要做网页内容的自动化审查——检查页面结构、内容完整性、关键信息是否缺失。没有后端 API,只有网页本身。
很多人会说,没有 API 就做不了自动化。但实际上,本地 Playwright 可以做到很多事,而且每一件都直接对齐审查目标:
- 打开页面并截图,用于视觉审查。截图是最直接的视觉证据,你能看到用户看到的每一像素。截图不需要 API——浏览器本身就是一个渲染引擎,Playwright 控制浏览器截屏,和用户手动截屏的结果完全一致。
- 提取页面的 DOM 结构,检查元素是否存在。DOM 检查比 API 返回的数据更可靠——因为 DOM 是用户实际交互的结构,API 可能只返回数据层的子集。一个页面可能 API 只返回了产品列表数据,但 DOM 里还有导航栏、侧边栏、页脚——这些结构信息对审查来说同样重要。
- 读取页面文本内容,检查关键信息是否完整。文本检查不需要任何权限,只要页面可访问就能读取。Playwright 通过浏览器引擎读取文本,和用户肉眼看到的内容一致——包括动态渲染的内容、延迟加载的内容、条件展示的内容。
- 检查链接是否有效,按钮是否可点击。交互检查是审查的重要维度——页面不只是信息展示,还是交互入口。一个按钮看起来存在但实际不可点击,API 数据不会告诉你这个问题,但 Playwright 可以模拟点击并检查结果。
- 对比不同版本的页面差异。版本对比用截图就能做,不需要任何数据接口。两张截图放在一起对比,人眼一目了然。也可以用像素差异算法自动检测变化区域。
这些操作不需要任何 API key。Playwright 通过浏览器实例直接操作页面,和真实用户看到的内容完全一致。API 返回的数据可能经过加工、过滤、格式化,但 Playwright 看到的是用户实际看到的——未经加工的真实页面。
不依赖 API 的优势
不用 API key 不只是"没有办法的办法",它有自己的结构性优势:
所见即所得。 API 返回的数据可能和用户看到的页面不一致——比如前端有动态渲染、有延迟加载、有条件展示。API 只返回后端的数据模型,前端怎么渲染这些数据,API 不管。Playwright 直接操作真实浏览器,看到的就是用户看到的。如果审查目标是"用户体验质量",那 Playwright 的结果比 API 的结果更对齐目标。
无权限限制。 API 通常需要申请 key、配额限制、速率限制。申请 key 可能要几天,配额可能一个月就耗尽,速率限制可能让你一个小时只能查几十个页面。Playwright 只要能访问网页就行,不需要任何额外权限,没有配额限制,速率限制只取决于你本地机器的性能。
覆盖前端逻辑。 API 只返回后端数据,前端的问题(布局错乱、元素缺失、交互失效、移动端适配异常)只有通过真实浏览器才能发现。这些问题在审查场景里往往是最高频的——因为大多数页面的后端数据是正确的,但前端展示出了问题。如果只用 API 审查,你会漏掉大量前端问题。
当然,Playwright 也有局限:它不能获取登录后才能看到的内容(除非你给它登录态),速度比 API 慢,不适合大规模数据采集。但在审查场景里,这些局限不重要——审查的目标是质量,不是量。你需要检查的是每个页面的展示质量,不是采集几千个页面的数据。
从实践提炼方法
这次经历提炼出几个判断原则,我后来每次做审查都会先想一遍:
审查场景优先考虑浏览器方案。 审查的核心是"用户看到什么",不是"后端返回什么"。浏览器方案天然对齐这个目标。API 方案天然对齐数据采集的目标。目标不同,方案就该不同。用 API 做审查,就像用望远镜听音乐——工具对,场景不对。
API 方案适合数据采集,不适合质量审查。 API 拿到的是数据,不是体验。如果你要检查数据完整性,用 API。如果你要检查体验质量,用浏览器。两者混在一起,结果就是数据层面的审查很全面,体验层面的审查很薄弱。
本地 Playwright 足够应对大多数审查任务。 不需要复杂的云服务,不需要 API key,在本地机器上就能跑。成本极低,可控性极高,调试方便——你可以在本地浏览器里实时看到 Playwright 的操作过程。实时观察比事后分析更高效,因为你能在操作过程中直接发现问题,而不是在输出结果里反推问题。
这个方法后来写进了 jianfei-github 的网页审查自动化流程:所有页面质量审查,默认用本地 Playwright,只有在需要大规模数据时才切换到 API 方案。
不是所有自动化都需要 API。有时候,最简单的方案就是最好的方案。一个浏览器实例,几行脚本,就能完成高质量的网页审查。关键是你要先想清楚审查的目标是什么——是数据还是体验。目标是体验时,浏览器方案永远比 API 方案更对路。