4

我无法让 Nutch 为我爬行一小块。我通过带有参数 -depth 7 和 -topN 10000的bin/nutch crawl命令启动它。它永远不会结束。仅在我的 HDD 为空时结束。我需要做什么:

  1. 开始爬取我的种子,有可能在外链上走得更远。
  2. 抓取 20000 页,然后将它们编入索引。
  3. 抓取另外 20000 页,将它们编入索引并与第一个索引合并。
  4. 循环步骤 3 n 次。

也尝试了在 wiki 中找到的脚本,但我发现的所有脚本都没有更进一步。如果我再次运行它们,它们会从头开始做所有事情。在脚本结束时,我有相同的索引,当我开始爬行时。但是,我需要继续爬行。

4

1 回答 1

10

您必须了解 Nutch 生成/获取/更新周期。

循环的生成步骤将从爬网数据库中获取 url(您可以使用topN参数设置最大数量)并生成新的段。最初,爬网数据库将仅包含种子 URL。

fetch 步骤执行实际的爬取。页面的实际内容存储在段中。

最后,更新步骤使用 fetch 的结果更新爬网数据库(添加新的 url,设置 url 的最后一次获取时间,设置 url 的获取的 http 状态代码等)。

抓取工具将运行此循环n次,可使用深度参数进行配置。

在所有循环完成后,爬网工具将删除启动它的文件夹中的所有索引,并从所有段和爬网数据库中创建一个新索引。

因此,为了执行您所要求的操作,您可能不应该使用爬网工具,而是调用各个 Nutch 命令,这就是爬网工具在幕后所做的事情。这样,您将能够控制爬网次数,并确保索引始终合并而不是在每次迭代时删除。

我建议您从此处定义的脚本开始,然后根据您的需要进行更改。

于 2010-04-16T15:10:41.667 回答