0

我想知道一些大型搜索引擎的重新抓取策略是如何工作的。例如让我们考虑谷歌。我们知道谷歌正在使用动态间隔来重新抓取每个网站。假设根据谷歌动态间隔,每 10 分钟应该重新抓取 10 万个站点。所以这 100000 个网站的爬取过程应该在 10 分钟内完成。大概有两种可能的情况:

1) google bot 将获取每个站点的第一页,然后生成该页面中的 URL 列表。对于每个 URL,它会检查该 URL 之前是否被获取。如果它是新的,它将获取新页面。此过程将一直持续到爬网结束或特定深度阈值。

2) google bot 将再次获取每个页面(无论它是否已更新)

假设 google 使用第一种策略,那么具有相同 url 但内容更新的页面将如何被抓取和索引?假设谷歌使用第二个,那么它如何在不到 10 分钟的时间内重新抓取所有这些页面?其他网页呢?可能有超过 60 亿个网页可用,如何及时重新抓取所有这些网页?我真的认为在 hadoop 基础架构上使用一些新技术(如 nutch 和 solr)是不可能的。

问候。

4

1 回答 1

1

我们使用大量计算机在网络上获取(或“抓取”)数十亿个页面。Googlebot 使用算法过程:计算机程序确定要抓取哪些网站、多久抓取一次以及从每个网站抓取多少页面。

Googlebot 的抓取过程从网页 URL 列表开始,该列表由之前的抓取过程生成,并由网站管理员提供的站点地图数据进行扩充。当 Googlebot 访问这些网站中的每一个时,它会检测每个页面上的链接(SRC 和 HREF)并将它们添加到其要抓取的页面列表中。新站点、对现有站点的更改和死链接会被记录下来并用于更新 Google 索引。

https://support.google.com/webmasters/answer/182072?hl=en

首先为什么它必须在 10 分钟内完成它的工作?

与第一段一样,并非所有站点都以相同的时间间隔重新抓取。他们有一个算法来确定这一点。

因此 googlebot 将再次获取每个页面,但间隔非常不同。它在您的问题中的选项(2)但添加了算法。

他们使用 hadoop 基础设施来实现可扩展性。

于 2014-06-13T05:43:00.153 回答