【问题标题】:Apache Nutch - Modify Queue of Links to be CrawledApache Nutch - 修改要抓取的链接队列
【发布时间】:2015-11-12 03:52:48
【问题描述】:

我已将 Apache Nutch 2.0 源代码移植到我的项目中,并且可以直接修改和构建它。从我读到的 -topN 参数确定该深度/页面中有多少得分最高的链接将被排队。实际上,在线可用资源让我感到困惑,这让我想到了我的第一个问题:

  1. -topN 是否对应每个深度要获取的链接的最高得分?还是每页

我的第二个:

  1. 这些 topN 链接是否与来自其他页面/深度的其他排队的 topN 链接优先?例如topN = 2, 1 个种子 URL,对于从种子 URL 爬取的 2 个页面,从这个深度获取的链接是聚合然后排序的吗?还是只对页内链接进行排序?这假设 topN 是每页。

我想做的是改变 Nutch 的广度优先行为。我希望首先抓取得分最高的链接,无论它们来自哪个深度。据我了解,Nutch 首先抓取所有种子网址,然后抓取来自depth=1 的所有topN 链接,然后抓取来自depth=2topN 链接等等......我想做的是:

  • 首先抓取所有种子网址
  • 然后抓取得分最高的链接。
  • 提取得分最高的页面中的外链接
  • 将链接排队到 PriorityQueue
  • 出列当前得分最高的链接,等等...

这让我想到了这些问题:

  1. 是否可以插入逻辑以遵循上述爬网行为?基本上将网络遍历更改为广度优先和深度优先的混合体,并且始终遍历得分最高的链接。
  2. 我可以同时执行此操作吗?

【问题讨论】:

    标签: java web-crawler nutch


    【解决方案1】:

    TopN 在 Nutch 的 GenerateJob 中用于获取 Top N 排名最高的 URL 以在 FetchJob 中获取。它不是每页的爬行深度。 您可以通过修改nutch-site.xml文件中<name>http.content.limit</name>的值来改变深度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多