机器人也会阅读页面
本文内容
任何可公开访问的网站的受众永远不仅仅是人类。互联网流量的一个重要且完全正常的部分由自动化程序组成,通常被称为机器人或爬虫。
这些脚本由搜索引擎、存档项目和学术机构操作,用来系统性地为网络上的内容建立索引。它们顺着从一份文档通往另一份文档的链接在互联网上穿行,一路读取文本、为结构编目。
由于它们要分析一个页面的源代码,就不可避免地会碰上那些指向外部元素的嵌入式引用,其中也包括用于可见测量工具的标签。这些自动的访客究竟被怎样对待,深刻地影响着最终统计数据的准确程度。
从前自动生效的那道过滤
从历史上看,自动化脚本被设计为尽可能快速和轻量级。它们仅下载页面的原始文本,完全忽略对图像、样式文件或复杂脚本的任何引用。
在这些较旧的条件下,基于图像的计数自然过滤掉了绝大多数非人类流量。由于机器人从不费心请求图形文件,服务器也就永远不会记录命中。
最终的数字只反映了那些真正需要视觉元素才能把页面读下来的、真实的人所用的浏览器。这种与生俱来的过滤机制,是拿一张简单的图形来做测量的主要好处之一,而且几乎不需要任何维护。
当爬虫开始看图片
然而,自动化系统的行为已经发生了显着演变。现代搜索引擎需要准确了解页面的外观以评估其可用性,尤其是在移动设备上。
为了实现这一点,它们的爬虫现在下载所有相关的图形和样式文件,以渲染页面的完整视觉快照。
于是,这些精巧的程序确实会去请求那张测量用的图形,并且像一位真人访客那样,把计数的机制原样触发一遍。这种行为如果放任不管,就会人为地把记录下来的数字抬高,让一个安静的教区网站显得出奇地受欢迎——而原因不过是某个搜索引擎决定把它的存档重新索引一遍。
服务器比对的那份名单
要对付这种被抬高的数字,提供图形的那台服务器必须主动分析进来的请求。自动化的程序通常会在它们传输的标准数据里用特定的名称,把自己清清楚楚地表明出来。
维护良好的计数系统会根据已知自动签名的广泛、不断更新的列表来检查此自我识别字符串。
一旦找到匹配,服务器仍旧会把图形送出去,好让爬虫完成它那一次抓取,但它会不声不响地把这次请求从真正的计数里剔除掉。正是这样的分离,保证了公开显示出来的数字反映的是真实的人的兴趣,而不是索引脚本不知疲倦的活动。
总有一小部分漏过去
尽管做出了这些过滤努力,这种分离永远不会绝对完美。每天都会创建新的自动化工具,并且一些工具积极地伪装自己以看起来像常规的桌面浏览器。
识别这些伪装的程序需要分析更广泛的模式,例如在几秒钟内请求数千个页面的互联网地址。
在技术上,要把一个人和一个非常聪明的脚本毫无瑕疵地精确区分开来,是不可能做到的;但一份扎实的过滤名单能把绝大多数噪音去掉。承认最终那个数字里,总会有一小部分可能属于没被认出来的自动化系统,是解读互联网统计数据时必要的一步——正是这一步,才保证了对实际覆盖范围有一个切合实际的理解。