Web crawler 如何抓取/索引频繁更新的网页的策略?

Web crawler 如何抓取/索引频繁更新的网页的策略?,web-crawler,search-engine,Web Crawler,Search Engine,我正试图建立一个非常小的利基搜索引擎,使用Nutch来抓取特定的网站。有些网站是新闻/博客网站。如果我爬网,比如说techcrunch.com,并存储和索引他们的frontpage或任何主页,那么在几个小时内,我对该页面的索引将过时 像谷歌这样的大型搜索引擎是否有一种算法可以非常频繁地(甚至每小时)重新抓取频繁更新的页面?或者它只是对频繁更新的页面评分很低,所以它们不会被返回 我如何在自己的应用程序中处理此问题?尝试在更新频率上保留一些每个frontpage的统计信息。检测更新很容易,只需在下一

我正试图建立一个非常小的利基搜索引擎,使用Nutch来抓取特定的网站。有些网站是新闻/博客网站。如果我爬网,比如说techcrunch.com,并存储和索引他们的frontpage或任何主页,那么在几个小时内,我对该页面的索引将过时

像谷歌这样的大型搜索引擎是否有一种算法可以非常频繁地(甚至每小时)重新抓取频繁更新的页面?或者它只是对频繁更新的页面评分很低,所以它们不会被返回


我如何在自己的应用程序中处理此问题?

尝试在更新频率上保留一些每个frontpage的统计信息。检测更新很容易,只需在下一个请求中存储并发回标题即可。保持更新频率(比如最近24次爬网)可以让您相当准确地确定FrontPage的更新频率


对frontpage进行爬网后,您将确定下一次更新的预期时间,并在该时间前后将新的爬网作业放入一个桶中(一小时的桶通常是快速和礼貌之间的良好平衡)。每小时,您只需获取相应的bucket并将作业添加到作业队列中。这样,您可以拥有任意数量的爬虫程序,并且仍然可以对单个爬虫的调度进行分配控制。

好问题。这实际上是
WWW
研究界的一个活跃话题。所涉及的技术称为重新爬网策略页面刷新策略

据我所知,文献中考虑了三个不同的因素:

  • 更改频率(网页内容更新的频率)
    • [1] :正式定义数据的“新鲜度”概念,并使用
      泊松过程
      对网页的变化进行建模
    • [2] :频率估计器
    • [3] :有关调度策略的更多信息
  • 相关性(更新页面内容对搜索结果的影响有多大)
    • [4] :为查询搜索引擎的用户提供最高质量的用户体验
    • [5] :确定(接近)最佳爬行频率
  • 信息寿命(随着时间的推移,网页中出现和消失的内容片段的生命周期与更改频率没有很强的相关性)
    • [6] :区分短暂内容和持久内容
您可能需要决定哪个因素对应用程序和用户更重要。然后,您可以查看以下参考以了解更多详细信息


编辑:我简要讨论[2]中提到的频率估计器,让您开始学习。基于此,您应该能够在其他论文中找出对您有用的内容。:)

请按照我在下面指出的顺序阅读本文。只要你知道一些概率和统计数据101,就不难理解(如果你只采用估算公式,可能会少很多):

第一步。请转到部分6.4——网络爬虫的应用程序。在这里,Cho列出了3种估算网页更改频率的方法

  • 统一策略:爬虫以每周一次的频率重新访问所有页面
  • 天真策略:在前5次访问中,爬虫以相同的频率访问每个页面 每周一次。在5次访问之后,爬虫估计更改频率 使用朴素估计器的页面数(第4.1节)
  • 我们的策略:爬虫程序使用建议的估计器(第4.2节)来估计变化频率
第二步。幼稚的政策。请转到第四节。你会看到:

直观地说,我们可以使用
X/T
X
:检测到的变化数量,
T
:监测周期)作为估计的变化频率

第4.1节的子序列刚刚证明了该估计是有偏差的、一致的和有效的

第三步。改进的估计量。请参阅第4.2节。新估算值如下所示:

其中,
\bar X
n-X
(元素未更改的访问次数),而
n
是访问次数。因此,只需利用这个公式,估计变化频率。您不需要理解本小节其余部分中的证明

第四步。第4.3节和第5节中讨论的一些技巧和有用的技巧可能对您有所帮助。第4.3节讨论了如何处理不规则间隔。第5节解决了这个问题:当元素的最后修改日期可用时,我们如何使用它来估计更改频率?使用上次修改日期的拟议估算值如下所示:

本文在图10之后对上述算法的解释非常清楚

第五步。现在,如果您有兴趣,可以在第6节中查看实验设置和结果

就这样。如果你现在觉得更有信心,那就试试[1]中的新鲜度报告吧


参考资料

[1]

[2]

[3]

[4]

[5]


[6] 我不是这方面的专家,但网站地图是缓解这一问题的一种方法

用最简单的术语来说,XML站点地图通常称为站点地图,带有 大写字母S-是您网站上的页面列表。创建和 提交网站地图有助于确保谷歌了解所有的信息 站点上的页面,包括用户可能无法发现的URL 谷歌的正常爬行过程。 此外,您还可以使用站点地图向Google提供元数据 关于网站上特定类型的内容,包括视频、图像、, 手机和新闻

谷歌专门用它来帮助他们抓取新闻网站。您可以在站点地图和信息列表中找到更多信息