我们开发了一个数据处理管道,使用Apache Nutch 1.4在给定一组配置的URL的情况下对Web数据进行爬网。管道随后应用一系列mapreduce任务来处理Web数据,最后将其索引到Solr中。我们使用预配置的hadoop集群和Amazon EMR。
这个应用程序是3年前开发的,已经使用了将近一年。当我们尝试使用最新的EMR版本(4.x)运行它时,它失败了。我想,Apache Nutch 1.4不再受支持,因为它使用较旧的hadoop版本(1.x)。所以我们决定升级到Nutch 1.9。但是,我们发现Nutch 1.9没有我们在1.4版本中用于从Java代码爬行的Crawl类(org.apache.nutch.crawl.Crawl)。检查文档我发现建议的方法是使用脚本bin / crawl。
但是,根据我从java代码调用脚本的方法似乎不太好,因为我们调用的外部进程使我们的控制力降低了。那我该怎么办?写我自己的org.apache.nutch.crawl.Crawl版本,还是有其他一些我在这里缺少的课程?
我的要求很简单。我想从Java代码调用Nutch API 1.9或更高版本。
目前正在为Nutch 1.X开发一个REST API - https://wiki.apache.org/nutch/Nutch_1.X_RESTAPI
没有像您正在谈论的那样直接抓取api,但您可以尝试使用REST端点调用作业以查看它们是否适合您的用例。