术语表
无头浏览器
在没有可见窗口的情况下运行的真实浏览器引擎,通常受自动化驱动。大批量跑起来便宜,也越来越容易被网站认出来(headless browser)。
无头浏览器是一个没有可见界面、由脚本通过自动化协议驱动的浏览器引擎。它是做测试和做大批量采集的标准工具,因为一台机器可以同时跑很多个,而且谁都不需要一块屏幕。引擎是真的,所以脚本会执行、DOM 会构建——区别只在于没有任何东西被画出来给人看。
实际的麻烦在于,无头模式一直都是可分辨的,而分辨点恰好就是指纹所测量的那些:图形栈输出什么、哪些字体能解析到、窗口怎样上报自己的尺寸,以及自动化协议留下了什么可见痕迹。在意这件事的网站会去查。Argus 这笔交换的两头都不做:需要驱动页面时,那是一个带窗口的普通 Chromium 会话,因此你采到的页面就是人会看到的页面,身份在渲染器里生成而不是靠包装遮掩;而当数据就在某个列表接口后面时,则根本不启动浏览器,那就是无浏览器采集。完整论证在数据采集页面,而驱动这类会话的自动化则写在自动化页面上。
术语表里的更多条目
无浏览器采集
用普通 HTTP 直接向网站自己的列表接口取数,全程不启动浏览器——快、便宜,且只在数据本就结构化的地方可行(browserless collection)。
验证码代解
把一次挑战交给第三方服务去作答。偶尔有用,但远不能替代「不触发这次挑战」(CAPTCHA solving)。
时区与地理位置伪装
让浏览器报出与会话自称所在地相符的时钟——有时还有坐标——而不是机器实际所在地的(timezone spoofing)。
防关联浏览器
为了在一台机器上运行多个彼此独立的身份而造的浏览器,每个身份都有自己的存储、自己的设备特征和自己的网络出口(anti-detect browser)。
浏览器指纹
网页能在几毫秒内、无需授权就读到的一组浏览器与机器属性,合在一起足以认出这台设备(browser fingerprint)。
Canvas 指纹
让浏览器画一个图形或一行文字,再对回读到的像素做哈希,由此得出的标识(canvas fingerprint)。
所有条目都列在术语表索引上。