Lucene 坚果-如何通过小补丁爬行?

Lucene 坚果-如何通过小补丁爬行?,lucene,web-crawler,nutch,Lucene,Web Crawler,Nutch,我不能让Nutch靠一小块地为我爬行。我通过参数为-depth 7和-topN 10000的bin/nutch crawl命令启动它。它永远不会结束。仅当我的硬盘为空时结束。我需要做的是: 开始用你的手去爬我的种子 进一步发展的可能性 轮廓线 抓取20000页,然后 索引它们 再爬两万 页面,索引它们并与合并 第一个索引 循环步骤3 n次 也尝试了wiki中的脚本,但我找到的所有脚本都没有进一步的改进。如果我再次运行它们,它们会从一开始就执行所有操作。在脚本的最后,我有了和我开始爬网时相同的索引

我不能让Nutch靠一小块地为我爬行。我通过参数为-depth 7和-topN 10000的bin/nutch crawl命令启动它。它永远不会结束。仅当我的硬盘为空时结束。我需要做的是:

  • 开始用你的手去爬我的种子 进一步发展的可能性 轮廓线
  • 抓取20000页,然后 索引它们
  • 再爬两万 页面,索引它们并与合并 第一个索引
  • 循环步骤3 n次

  • 也尝试了wiki中的脚本,但我找到的所有脚本都没有进一步的改进。如果我再次运行它们,它们会从一开始就执行所有操作。在脚本的最后,我有了和我开始爬网时相同的索引。但是,我需要继续爬网。

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

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

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

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

    爬网工具将运行该循环n次,可通过深度参数进行配置

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

    因此,为了实现您的要求,您可能不应该使用爬网工具,而应该调用单独的Nutch命令,这是爬网工具在幕后所做的。这样,您就可以控制爬网的次数,还可以确保每次迭代时索引总是合并而不是删除


    我建议您从脚本开始定义并根据需要进行更改。

    谢谢!现在我明白了Nutch的工作原理。一个问题:初始步骤中的爬网数据库仅包含种子URL。我爬网了,在我的爬网数据库中得到了100000个URL。当我再次开始爬网,并且不使用-topN参数时,nutch从它的crawldb爬网需要多少URL?如果不指定topN参数,generate命令将获取所有准备好获取的URL,并将它们添加到新段中。将获取在上一次爬网中发现的所有新URL。对于已经获取的URL,根据db.fetch.interval.default和db.fetch.interval.max参数,只有在它们到期时才会再次获取它们。所以,我甚至不需要指定深度,是吗?Nutch将在一个深度中获取100000个URL。是否正确?是的,深度仅应用于爬网命令,以指定要执行的生成/获取/更新周期数。是的,generate命令应该获取所有准备获取的URL。