What is a web crawler? | How web spiders work

A web crawler, or spider, is a type of bot that is typically operated by search engines like Google and Bing. Their purpose is to index the content of websites all across the Internet so that those websites can appear in search engine results.

学习目标

阅读本文后,您将能够:

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

复制文章链接

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

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

这些机器人几乎总是由搜索引擎操作。通过对爬网程序收集的数据执行搜索算法,搜索引擎可以响应用户搜索查询提供相关链接,在用户将搜索输入谷歌或Bing(或其他搜索引擎)生成显示网页列表。

爬网程序机器人就像是一个人,会浏览图书馆中杂乱无章的所有书籍,并整理卡片目录,以便访问图书馆的任何人都可以快速、轻松地找到所需的信息。为了帮助按主题对图书馆的书籍进行分类和组织,组织者将浏览书名、摘要和每本书的一些内部文本,以了解其概要。

Web crawler bot organizing information

但是,与图书馆不同,互联网不是由大量的书籍组成的,这使得很难判断所有必要的信息是否已正确索引,或者是否忽略了其中的大量信息。为了试图查找到互联网所能提供的所有相关信息,爬网程序机器人将从一组已知网页开始,然后从这些页面的超链接导到其他页面,再从这些页面的超链接进一步导到其他页面,以此类推。

搜索引擎机器人迄今实际爬行了多少公共可用的互联网仍是未知之数。一些消息来源估计,只有40%到70%的互联网被编入搜索索引,大概是数十亿个网页。

什么是搜索索引?

搜索索引就像为互联网创建图书馆目录卡,以便搜索引擎在人们搜索互联网时知道在互联网上何处提取信息。也可以将其与一本书的索引进行类比,该索引列出了书中提到某个主题或短语所在位置。

索引主要关注页面上显示的文本,以及用户看不到的有关页面的元数据*。当大多数搜索引擎将页面编入索引时,它们会将页面上的所有单词添加到索引中 – 在谷歌中,冠词除外。当用户搜索这些单词时,搜索引擎会搜索这些单词出现的所有页面索引,并选择最相关的页面。

*在搜索索引中,元数据是告知搜索引擎网页内容的数据。通常,元标题和元描述将出现在搜索引擎结果页面上,与用户可见的网页内容相反。

爬网程序如何工作?

互联网在不断变化和扩展。由于无法知道互联网上总共有多少个网页,因此爬网程序机器人从种子或已知URL列表开始。他们首先在那些URL上爬行网页。当他们爬网这些网页时,他们会找到指向其他URL的超链接,并将它们添加到要爬行的页面列表中。

鉴于互联网上的大量网页都可以被索引以进行搜索,因此该过程几乎可以无限期地进行下去。但是,爬网程序将遵循某些策略,从而使其在选择要爬网的页面、以什么顺序进行爬网以及应该多久重新爬网一次以检查内容更新的时候能更加灵活。

每个网页的相对重要性:大多数网页爬网程序不会也不旨在爬网整个公开可用的互联网;取而代之的是,他们根据其他页面链接到该页面的数量、该页面吸引的访问者数量以及其他表示该页面包含重要信息的可能性等多重因素,来决定是否首先爬取该网页。

这个原理是如果一个网页被许多其他网页引用并吸引了大量访问者,那么它可能包含高质量的权威信息,因此,搜索引擎对其进行索引就会变得重要且必须,就像一本书如果被很多人借出,那图书馆可能需要确保有很多该书的副本。

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

Robots.txt requirements: Web crawlers also decide which pages to crawl based on the robots.txt protocol (also known as the robots exclusion protocol). Before crawling a webpage, they will check the robots.txt file hosted by that page's web server. A robots.txt file is a text file that specifies the rules for any bots accessing the hosted website or application. These rules define which pages the bots can crawl, and which links they can follow. As an example, check out the Cloudflare.com robots.txt file.

所有这些因素在每个搜索引擎内置于其蜘蛛机器人的专有算法中的权重都不同。尽管最终目标都是一样——从网页下载内容并为其编制索引——但来自不同搜索引擎的网页爬网程序的行为会略有不同。

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

互联网,或者至少是大多数用户访问的部分,也被称为万维网–实际上,这是大多数网站URL的"www"部分的来源。因此很自然将搜索引擎机器人称为"蜘蛛”,因为他们爬遍了网络,就如同真正的蜘蛛在蜘蛛网上爬行。

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

这取决于网络媒体资源,取决于许多因素。爬网程序需要服务器资源才能为内容建立索引–它们发出服务器需要响应的请求,就像访问网站的用户或其他访问网站的机器人一样。取决于每个页面上的内容量或网站上的页面数量,不宜过于频繁地进行搜索索引可能比较符合网站运营商的最大利益,因为过多的索引可能会使服务器负担过多或增加带宽成本,或者两者都有。

另外,除非用户已获得指向该页面的链接(而无需将该页面置于付费专区或登录名后),否则开发人员或公司可能不希望某些网页被发现。对于企业来说,这种情况的一个例子是,他们为营销活动创建专用的登录页面,但是他们不希望任何非目标受众访问该页面。这样,他们可以定制消息内容或更精确衡量页面的成效。在这种情况下,企业可以在目标网页上添加" no index "标签,这样就不会显示在搜索引擎结果中。他们还可以在页面或robots.txt文件中添加"disallow"(不允许)标记,搜索引擎蜘蛛程序将根本不会抓取该标记。

网站所有者也可能出于各种其他原因,不希望爬网程序机器人爬取其部分或全部站点。例如,为用户提供网站内搜索功能的网站可能希望阻止搜索结果页面,因为这些页面对大多数用户没有用。其他自动生成的仅对一个用户或几个特定用户有用的页面也应被阻止。

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

网页抓取、数据抓取内容抓取是指机器人在未经许可的情况下载网站内容的行为,通常是出于恶意目的使用该内容。

网页抓取通常比网页爬行更具针对性。网页抓取的目标可能只是特定页面或特定网站,而网页爬取将继续跟踪链接并连续爬取页面。

此外,网络抓取机器人可能会无视它们对网络服务器造成的压力,而网络爬虫(尤其是来自主要搜索引擎的网络爬虫)将服从robots.txt文件并限制其请求,以免使网络服务器负担过多。

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

SEO代表搜索引擎优化,它是为搜索索引准备内容的准则,以便网站在搜索引擎结果中显示在更高的位置。

如果蜘蛛机器人没有爬取网站,则无法将其编入索引,并且不会在搜索结果中显示。因此,如果网站所有者希望从搜索结果中获得有机流量,那么请不要阻止网络爬虫程序机器人,这一点非常重要。

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

来自主要搜索引擎的机器人被称为:

  • 谷歌:Googlebot(实际上是两个抓取工具,Googlebot Desktop和Googlebot Mobile,用于桌面和移动设备搜索)
  • Bing:Bingbot
  • Yandex(俄罗斯搜索引擎):Yandex Bot
  • 百度(中国搜索引擎):百度蜘蛛

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

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

Bad bots can cause a lot of damage, from poor user experiences to server crashes to data theft. However, in blocking bad bots, it's important to still allow good bots, such as web crawlers, to access web properties. Cloudflare Bot Management allows good bots to keep accessing websites while still mitigating malicious bot traffic. The product maintains an automatically updated allowlist of good bots, like web crawlers, to ensure they aren't blocked. Smaller organizations can gain a similar level of visibility and control over their bot traffic with Super Bot Fight Mode, available on Cloudflare Pro and Business plans.