什么是 Web 爬网程序?| 网络蜘蛛的工作方式

Web 爬网程序或网络蜘蛛是一种机器人,通常通过 Google 和 Bing 等搜索引擎运行。上述搜索引擎的目的是为整个 Internet 上的网站内容建立索引,使这些网站能出现在搜索引擎的搜索结果中。

Share facebook icon linkedin icon twitter icon email icon

Web 爬网程序

学习目标

阅读本文后,您将能够:

  • 了解 Web 爬网程序(或者网络蜘蛛)的概念
  • 了解 Web 爬网程序如何选择要爬取的页面
  • 说明 Web 爬取与 Web 抓取二者的区别
  • 探讨是否应允许在任意既定网页上进行 Web 爬取

什么是 Web 爬网程序机器人?

Web 爬网程序、网络蜘蛛或者搜索引擎机器人会从整个 Internet 下载内容并建立索引。这种机器人的目标是学习 Web 上(几乎)每个网页的内容,以便需要时检索到相关信息。这些机器人被称作“Web 爬网程序”是因为爬取是一个技术术语,用以形容通过软件程序自动访问网站或者获取数据。

此类机器人几乎总是通过搜索引擎运行。搜索引擎将搜索算法应用于 Web 爬网程序收集到的数据,借此可向用户提供相关链接以响应其搜索查询,在用户向 Google 或 Bing(或者其他搜索引擎)键入搜索内容后形成要呈现的网页列表。

Web 爬网程序机器人像一个在混乱无序的图书馆梳理所有书籍的人,这个人整理出卡片目录,方便到访图书馆的任何人都能快速轻松地找到自己所需的信息。整理人员会阅读每本书的标题、摘要和部分内文,从而了解书本内容,这样有助于按照主题将图书馆书籍分门别类。

然而,Internet 并不像图书馆是由一摞摞实体书构成的,因此,也就难以判定是否已经为所有必要信息合理建立索引,或者是否忽略了大量必要信息。Web 爬网程序机器人在试着查找 Internet 须提供的相关信息时,首先会从一组特定的已知网页开始,而后会跟踪这些网页的超链接转至其他页面,再跟踪其他页面的超链接转至更多页面,并依此重复。

无人知晓搜索引擎机器人实际上爬取过多少公开可用的 Internet。某些消息来源评估,仅有 40-70% 的 Internet 建立了搜索索引,而这意味着数十亿个网页。

什么是搜索索引?

搜索索引类似于创建 Internet 图书馆卡片目录,当人们搜索信息时,方便搜索引擎了解在 Internet 何处检索相应信息。搜索索引还可比作是书本后文的索引,列明所提及的特定主题或者短语在书中出现的全部位置。

索引主要关注页面上出现的文本,以及对用户不可见的页面相关元数据*。大部分搜索引擎在为页面建立索引时,会将页面上所有文字加入索引当中,但在 Google 实例中,“a”、“an”和“the”等词不会加入索引当中。在用户搜索这些文字时,搜索引擎会细查所有出现这些文字的页面索引,然后选择相关性最强的结果。

*在搜索索引背景下,元数据是指让搜索引擎了解网页相关内容的数据。通常会出现在搜索引擎搜索结果页面上的是元标题和元描述,而非用户可见的网页内容。

Web 爬网程序的工作方式是什么?

Internet 在不断地变更及扩展。要知道 Internet 上有多少网页,这是不可能的事,因此 Web 爬网程序机器人会从种子或者已知 URL 列表入手。这些机器人首先爬取前述 URL 的网页。在爬取这些网页的过程中,这些机器人会发现指向其他 URL 的超链接,它们会将这些超链接添加至页面列表以便后续爬取。

鉴于 Internet 上大量网页可建立搜索索引,这一过程几乎可以无限继续下去。然而,Web 爬网程序会依照特定策略更具体地选择爬取哪些页面,按照什么顺序爬取,以及间隔多久再次爬取这些页面以查看内容更新情况。

各网页的相对重要性:大多数 Web 爬网程序并不会也不打算爬取整个公共可用的 Internet;相反,这些爬网程序首先会根据链接至页面的其他页面数量、页面访问者数量和其他表明网页可能包含重要信息的因素来决定爬取哪些页面。

很多其他网页引用且访问者数量庞大的网页有可能包含高质量的权威信息,基于这种理念,搜索引擎势必会为该网页建立索引,这点尤为重要。就像一本书,如果有许多人查阅,则图书馆会保留多册复本。

再访网页:Web 内容不断被更新、删除或者移动到新的位置。Web 爬网程序需定期重新访问页面,确保索引的内容为最新版本。

robots.txt 要求:Web 爬网程序还根据 robots.txt 协议(也称为机器人排除协议)决定爬取哪些页面。爬网程序会在爬取网页之前查看该页面所在 Web 服务器托管的 robots.txt 文件。robots.txt 文件是一种文本文件,其中就机器人访问托管网站或者应用程序详细说明了相应规则。这些规则界定机器人能够抓取哪些页面,以及可以跟踪哪些链接。示例请查看 Cloudflare.com 上的 robots.txt 文件

所有这些要素权重不一,视各搜索引擎内置于其蜘蛛机器人的专用算法而定。不同搜索引擎的 Web 爬网程序行为会略有差别,但终极目标都一样:从网页下载内容并为之建立索引。

为什么 Web 爬网程序也称作“蜘蛛”?

多数用户访问的 Internet 或者至少局部 Internet 也称作“万维网”,事实上,大部分网站 URL 中的“www”也由此而来。搜索引擎机器人全网爬取页面,就像真蜘蛛在蜘蛛网上爬行一般,因此自然而然地被称作“蜘蛛”。

是否应始终允许 Web 爬网程序机器人访问 Web 属性?

视 Web 属性而定,而 Web 属性又受许多因素影响。Web 爬网程序要求有服务器资源以便索引内容。爬网程序提出请求,服务器需作出响应,类似于用户或者其他机器人访问网站。视各页面上的内容量或者站点上的页面数量而定,网站运营商最好拒绝频繁的搜索索引,原因是过度索引会给服务器造成过大的负担,增加带宽成本,或者同时造成以上两种后果。

此外,开发人员或者公司可能也不希望某些网页被检测到,除非已向用户发送页面链接(不在付费墙或者登录界面后设置页面)。例如,企业在营销活动中创建专门的登录页面,但不希望非活动目标人群访问该页面。采取这种方式,企业能够量身定制消息功能,或者准确估量页面效果。在该实例中,企业可在登录页面添加“无索引”标签,该页面将不会出现在搜索引擎结果中。企业还可以在页面或者 robots.txt 文件中添加“不允许”标签,搜索引擎蜘蛛则完全不会爬取该页面。

网站所有者也可能因为各种其他原因,不想让 Web 爬网程序机器人爬取其站点的部分或者全部内容。例如,网站允许用户在站点内搜索,有可能想阻止搜索结果页面,因其对多数用户而言作用不大。其他自动生成的页面,如果仅对一个用户或者少数特定用户有用,也应加以阻止。

Web 爬取与 Web 抓取二者有何区别?

Web 抓取、数据抓取或者内容抓取是指机器人未经许可下载网站上的内容,且通常带有恶意使用这些内容的意图。

相较 Web 爬取而言,Web 抓取往往更具针对性。Web 抓取程序可能仅跟踪特定页面或特定网站,而 Web 爬网程序则会持续跟踪链接并爬取页面。

此外,Web 抓取程序机器人可能并不考虑其自身给 Web 服务器造成的负担,而 Web 爬网程序,尤其是各大搜索引擎中的爬网程序则会遵循 robots.txt 文件内容,并限制自身请求以免给 Web 服务器造成过大的负担。

Web 爬网程序对 SEO 有何影响?

SEO 代表搜索引擎优化,这一专业领域旨在将内容备妥用于搜索索引,以便网站显示在搜索引擎结果排名更靠前的位置。

如果蜘蛛机器人没有爬取某个网站,则无法为该网站建立索引,因此该网站也不会出现在搜索结果中。鉴于此,如果网站所有者想从搜索结果中获取自然流量,则不能阻止 Web 爬网程序机器人,这点至关重要。

Internet 上活跃的 Web 爬网程序机器人有哪些?

各大搜索引擎的机器人被称为:

  • Google:Googlebot(实际上是两种爬网程序,Googlebot Desktop 和 Googlebot Mobile,分别用于桌面搜索和移动搜索)
  • Bing:Bingbot
  • Yandex(俄罗斯搜索引擎):Yandex Bot
  • 百度(中国搜索引擎):百度蜘蛛

还有许多比较不常见的 Web 爬网程序机器人,其中一些与任何搜索引擎都无关联。

在机器人管理中需将 Web 爬取考虑在内,这点为什么如此重要?

恶意机器人会造成巨大损失,从用户体验差、服务器崩溃到数据盗窃,逐步升级。但在阻止恶意机器人的过程中,仍要允许 Web 爬网程序等善意机器人访问 Web 属性,这点很重要。Cloudflare 机器人管理允许善意机器人继续访问网站,同时还能减少恶意机器人流量。该产品自动更新 Web 爬网程序等善意机器人白名单,确保其运行畅通无阻。