我必须通过Nutch抓取一些URL。为此,我必须每次都提供种子URL。因此,它们每次都被注入到同一个表中。现在,随着时间的流逝,数据库将增加,在生成阶段,它寻找所有的URLs,需要时间。有没有什么方法可以指示Nutch只抓取新注入的URL,而不看表(旧的URL).或者有什么更好的方法。
(假设 "表 "代表Nutch 2.x使用的 "WebTable",以将抓取的网页持久化在支持的存储后端之一,HBase等):生成器通过批处理-ID标记获取列表,见脚本。bin/crawl
以了解如何使用 batch-IDs 的细节。这是一个任意但唯一的字符串,不要太长,因为在一些存储后端有长度限制(见gora-*-mapping.xml)。如果要跳过生成步骤,你可以使用任何其他工具,用自定义的 batch-ID 来标记新注入的 URL,然后调用 fetch
, parse
, updatedb
, index
使用这个ID。
(如果是关于Nutch 1.x)有一个工具 freegen
它接收一个URL列表(一个文本文件)并从中创建一个段。然后调用 fetch
, parse
, updatedb
, index
传递创建的段的路径作为参数。