术语表

无头浏览器

在没有可见窗口的情况下运行的真实浏览器引擎,通常受自动化驱动。大批量跑起来便宜,也越来越容易被网站认出来(headless browser)。

无头浏览器是一个没有可见界面、由脚本通过自动化协议驱动的浏览器引擎。它是做测试和做大批量采集的标准工具,因为一台机器可以同时跑很多个,而且谁都不需要一块屏幕。引擎是真的,所以脚本会执行、DOM 会构建——区别只在于没有任何东西被画出来给人看。

实际的麻烦在于,无头模式一直都是可分辨的,而分辨点恰好就是指纹所测量的那些:图形栈输出什么、哪些字体能解析到、窗口怎样上报自己的尺寸,以及自动化协议留下了什么可见痕迹。在意这件事的网站会去查。Argus 这笔交换的两头都不做:需要驱动页面时,那是一个带窗口的普通 Chromium 会话,因此你采到的页面就是人会看到的页面,身份在渲染器里生成而不是靠包装遮掩;而当数据就在某个列表接口后面时,则根本不启动浏览器,那就是无浏览器采集。完整论证在数据采集页面,而驱动这类会话的自动化则写在自动化页面上。