我想知道一些大型搜索引擎的重新爬网策略是如何工作的。例如,让我们考虑一下谷歌。我们知道google正在使用动态间隔来重新抓取每个网站。假设根据google dynamic interval,每10分钟就有100k个站点需要重新抓取。因此,这100000个网站的抓取过程应该在10分钟内完成。可能有两种可能的情况:
1)谷歌机器人将获取每个这些网站的第一页,然后在此页面中生成URL列表。对于每个URL,它将检查此url是否在之前获取。如果它是新的,它将获取新的页面。此过程将一直持续到爬网或特定深度阈值结束。
2) google bot将再次获取每个页面(无论是否已更新)
假设谷歌使用第一种策略,那么如何抓取和索引具有相同url但内容更新的页面?假设google使用第二个页面,那么它如何在不到10分钟内重新抓取所有这些页面?其他的网页呢?可能有超过60亿个网页可用,如何及时重新抓取所有这些页面呢?我真的认为在hadoop基础设施上使用像nutch和solr这样的新技术是不可能的。
致以问候。
发布于 2014-06-13 13:43:00
我们使用一组庞大的计算机来获取(或“爬行”) web上的数十亿个页面。Googlebot使用一个算法过程:计算机程序决定抓取哪些网站,多久一次,以及从每个网站抓取多少页面。
Googlebot的爬行过程从一个网页URL列表开始,这些URL是从以前的爬行过程中生成的,并由网站管理员提供的网站地图数据扩充而成。当Googlebot访问这些网站时,它会检测每个页面上的链接(SRC和HREF),并将它们添加到要抓取的页面列表中。新站点、对现有站点的更改和无效链接都会被记录下来,并用于更新Google索引。
https://support.google.com/webmasters/answer/182072?hl=en
首先,为什么它必须在10分钟内完成工作?
正如第一段所述,并不是所有的站点都以相同的间隔重新搜索。他们有一个算法来确定这一点。
因此,googlebot将再次获取每个页面,但间隔非常不同。它的选项(2)在你的问题中,但增加了一个算法。
他们使用hadoop基础架构实现可伸缩性。
https://stackoverflow.com/questions/23982278
复制相似问题