您是否曾想过,百度如何知道您搜索时显示的所有网站?它是一台机器,所以它并非无所不知。因此,它必须有一种方法来收集有关互联网上网站的信息,否则,它又如何在搜索结果中向您显示它们呢?这实际上是一个相当有趣的过程,我们将向您一一介绍。这一切都是由称为网络爬虫的软件应用程序(机器人)完成的。它们之所以被称为爬虫,是因为它们像蜘蛛一样爬遍了整个万维网!
正如其名称所示,这些网络爬虫的作用是:爬取互联网以编制索引。这样做是为了了解每个在线页面的内容,以便将其显示在相关的搜索结果中。搜索引擎几乎总是运行这样的爬虫,每天访问无数网站。爬取是完全自动化的,因为您可以想象,在线页面太多,人们无法手动分配它们。话虽如此,让我们更深入地了解网络爬虫是什么,以及它实际上如何有益于您的网站!
什么是网络爬虫?
让我们更深入地讨论一下网络爬虫。它们是当今互联网的重要组成部分。没有它们,搜索引擎就不会像现在这样精确,也不会有如此多的搜索结果。
然而,为了更详细地解释什么是网络爬虫,我们必须首先了解什么是搜索索引。如果我们给出一个现实世界的类比,它实际上非常简单。搜索索引就像为图书馆创建目录。这样的目录可以帮助访问者更快地找到书籍,而不是逐个书架搜索。这正是搜索索引:在线页面的目录。然后,搜索引擎使用此目录来获取与给定的搜索查询相关的页面。
网络爬虫是网络世界的图书管理员。就像图书管理员整理和编目杂乱的图书馆一样,网络爬虫会浏览互联网并记录每个页面的内容,然后将其分配给适当的索引。如您所见,搜索索引和网络爬虫是非常熟悉的概念,它们应用于网络世界。
网络爬虫如何工作?
现在我们知道了什么是搜索索引,更重要的是,什么是网络爬虫,现在是时候讨论爬虫如何知道要访问哪些页面以及访问频率了。由于互联网是一个永不停歇的庞大网络,因此可能很难想象爬虫试图索引的页面数量之多。这个过程本身可能永无止境。它们甚至从哪里开始呢?它们从称为种子的 URL 列表开始。此种子将爬虫发送到特定的网页,然后开始该过程。如今网页的一大优点是它们具有超链接,爬虫将跟踪这些超链接。然后跟踪后续页面上的超链接,依此类推。
网络爬虫不会努力索引整个互联网,因为正如我们上面提到的,这是一项几乎不可能完成的任务。相反,它们遵循一些规则,这些规则规定了哪些页面被索引,哪些页面留待以后再索引。
- 页面重要性——无论主题是什么,网络爬虫都会尝试索引包含有价值信息的页面。它们根据几个因素确定页面是否包含此类信息:反向链接和内部和出站链接的数量、流量以及或 和页面 权限。这是网络爬虫的基本规则,对页面抓取的影响最大;
- Robots.txt规则 – robots.txt 是一个文件和一个协议: 机器人排除协议。该文件位于网站的托管服务器上,并具有机器人本身的访问规则。在抓取网站之前,机器人会检查 robots.txt 文件,如果存在,它们将查看其规则。如果任何禁止抓取的文件,机器人将不会索引该页面并继续前进。该文件有助于防止机器人抓取您的页面或仅希望特定机器人具有访问权限。我们将在后面向您展示如何做到这一点;
- 重新抓取频率——互联网上的页面不断更新,这意味着它们必须重新抓取和重新编入索引。但机器人不能只是停留在页面上,等待它获取新内容,然后才能执行这些操作。因此,每个搜索引擎都有自己的返回页面查找新内容的频率。例如,Google 每周一次到每月一次,具体取决于页面的重要性。您也可以按照此处的指南手动请求 Google 抓取 。更受欢迎的页面会被更频繁地重新抓取。
这就是爬虫的工作原理!当我们坐下来思考时,这一切都是有道理的,这也让我们感受到互联网的广阔。这是一个我们认为理所当然的广阔空间,但至少现在你对互联网的运作有了更多的了解。
网络爬虫的类型
网络爬虫都索引互联网,但使用的方法不同,托管公司也不相同。在本篇博文中,我们将根据网络爬虫的功能和托管方来探讨不同类型的网络爬虫。
一方面,我们根据网络爬虫抓取网站的方式和一般用途对网络爬虫进行分类。这些爬虫都对互联网进行索引,但有些会不断向前移动,不断索引新页面,而另一些则会重新跟踪这些步骤以查找更新。话虽如此,以下是四种最流行的网络爬虫类型,具体取决于它们的功能。
- 专注型网络爬虫 –这是最基本的机器人。这些类型的机器人将根据一组预定的要求收集信息。如果您还记得我们之前讨论过的种子,这些要求通常会在其中概述。例如,它们将仅查找与网站托管相关的内容,并且仅当超链接与此相关时才跟踪它们。这些机器人不断前进,绘制互联网地图;
- 增量式网络爬虫——与上述爬虫相反,这些爬虫会遍历之前编入索引的页面,寻找任何更新。例如,它们会用索引中的新链接替换任何过时的链接;
- 并行网络爬虫——比其他两个网络爬虫稍微先进一点,它利用 并行化 同时执行多个爬取任务。
另一方面,我们根据托管或拥有者的不同而有不同的爬虫程序。您可能已经熟悉其中一些,但如果不熟悉,以下是最受欢迎的爬虫程序及其用户代理。我们将在下一篇文章中解释它们是什么。
- Googlebot –最著名的网络爬虫,Googlebot 是两个机器人的俗称:Googlebot Desktop 和 Googlebot Mobile。顾名思义,Google 拥有并运营它,使其成为目前使用最有效的爬虫。它的用户代理是 Googlebot;
- Bingbot –这是微软自己的爬虫,部署于 2010 年。它为自己的搜索引擎 Bing 索引互联网。它在许多方面与 Googlebot 相似,其用户代理就是一个例子:Bingbot;
- Slurp –这是为 Yahoo 搜索结果提供支持的机器人,与上面的 Bingbot 结合使用。许多 Yahoo 网站都使用 Bing,但 Slurp 更频繁地抓取 Yahoo 特定的网站以更新其搜索结果。其用户代理是 Slurp;
- DuckDuckBot – DuckDuckGo 最近成为一款颇受欢迎的搜索引擎,因为它提供了与之前任何引擎不同的隐私保护。它不会跟踪您的搜索,这一点已成为人们非常喜欢的一点。它的用户代理是 DuckDuckBot;
虽然了解不同类型的网络爬虫并非必不可少,但了解有哪些类型以及谁拥有它们还是很有用的。例如,它可以帮助您根据特定搜索引擎的要求优化您的网站。
网络爬虫如何使您的网站受益?
我们知道这听起来是什么样的:一些自动机器人在您不知情的情况下访问您的网站。这听起来并不吸引人,但我们向您保证,所有合法机器人都会为了自己的利益而抓取您的网站。如果它不被抓取,它就不会出现在搜索结果中。如果它是一个个人网站,这对某些人来说可能很棒。然而,对于企业和公司来说,他们必须拥有在线形象。为了实现这一点,他们的网站必须出现在搜索结果中。
这是最重要的优势:可发现性和曝光度。当一个网站在线发布时,它会被抓取并出现在搜索结果中。如果你想让你的网站拥有出色的 SEO,这一点很重要;我们都知道这在当今有多么重要。你的网站越适合抓取,抓取工具就越容易抓取,它就越“喜欢”这个网站,并且每次你更新它时都会继续返回它。
您的链接结构应该坚固且易于阅读和导航。例如,您的页面应该有清晰的名称和 slug;每个图像或其他媒体也应如此。避免随机生成的链接,因为就像人们记不住这些链接一样,爬虫也不喜欢它们。这样做的好处是,这不仅有助于您的网站更频繁、更快地被爬取,而且还有助于 SEO。
您的网站优化得越好(不仅是链接优化,还有关键词优化),它在搜索结果中的排名就越高。排名越高,获得的流量就越多,从而吸引机器人更频繁地抓取它。更频繁地抓取将更新索引,保持搜索引擎信息的相关性,并吸引更多人访问您的网站。
爬虫听起来很棒,不是吗?这是因为它们确实很棒,而且它们甚至不会影响您网站的性能,因为它们完全在后台运行。但有些爬虫并不那么仁慈。
如何拒绝爬虫
与其他所有在线应用程序一样,网络爬虫也存在恶意版本。幸运的是,它们无法直接攻击您的网站并损害其功能。但是,它们可能会生成意外的脚本请求和带宽使用量。对于托管在每月配额有限的服务器上的网站来说,这可能是一个问题。幸运的是, 我们在本文前面讨论过的robots.txt 和 user-agent 可以提供帮助。
您可以在托管服务器上的网站目录中的任何位置创建 robots.txt 文件。放置文件的位置很重要,因为它只会影响其所在目录中的页面。例如,如果您在网站的根目录中创建该文件,则爬虫程序必须遵守其规则来处理您网站的所有页面。如果它位于子目录中,则规则将仅涵盖该子目录中包含的页面或资源。但是,您究竟如何阻止网络爬虫访问您的网站,您又如何识别恶意爬虫呢?
要阻止网络爬虫对您的网站进行索引,您只需在 robots.txt 文件中放置这几行。
//Block One Crawler
User-agent: Googlebot
Disallow: /
我们以 Googlebot 为例。这将阻止 Googlebot 抓取您的网站。第一行以斜杠开头,作为注释,抓取工具将忽略它。它提醒您其他行的用途。第二行指定第三行将影响的机器人。您可以 禁止 或 允许。禁止后的破折号 代表网站的根目录。因此,机器人根本不会抓取该网站。如果我们改用 /images, 抓取工具将索引除/images目录之外的整个网站 。
此外,请记住,机器人将从上到下读取文件,这意味着您可以灵活地选择允许和禁止的内容。
//Allow only Googlebot
User-agent: Googlebot
Allow: /
//Stop All Other Bots
User-agent: *
Disallow: /
上面的示例将仅允许 Googlebot 抓取您的网站。允许或禁止后的斜线代表您网站的根目录,因此您可以在其后放置任何目录或文件的路径,以阻止机器人抓取这些内容。同时,星号表示所有其他机器人。但您如何识别可能存在问题的机器人?这完全取决于托管您网站的服务。
以我们的美国虚拟主机为例,他们使用 cPanel 作为控制面板,其中有一个名为 Awstats的工具。
在其中,您可以找到一个特定的表格,其中显示了所有访问过该网站的机器人。它会告诉您机器人的名称,以及它访问了多少次以及它产生了多少带宽。
您看到的名称是您需要放置在robots.txt文件中的用户代理 。请记住,只有合法的机器人才会遵守该文件。这些合法的机器人会更频繁地访问您的网站,您不必担心它们。它们不会停留太久,也不会占用您服务器CPU资源。如果您发现脚本执行或带宽出现任何峰值,请立即联系您的托管服务提供商。原因可能是过于热切的机器人过于频繁地抓取您的网站。您可以阻止它或降低其抓取率。Google 从其 Google 搜索中心提供此类功能。将此行放在 robots.txt 文件中可能会减慢其他机器人的速度。
- 爬行延迟:
您可以在冒号后放置任意数字,这将是机器人在尝试重新抓取之前等待的时间(以秒为单位)。
如果您使用 WordPress,您还可以安装 Blackhole for Bad Bots 插件,该插件会捕获不遵守 robots.txt 文件中规则的机器人:“Bad Bots”。这是一个无害的插件,它会为您的网站增加一层安全性,保护它免受机器人浪费服务器资源的影响。
网络爬虫对于提高您网站的可发现性非常重要,并且有助于网站的 SEO。如果没有它们,我们也不会拥有我们每天使用的搜索引擎以及大量依赖这些搜索引擎的其他服务。互联网本来会是一个更加封闭的空间,但有了爬虫的帮助,我们需要或想要的一切就触手可及。