Nutch的另一种网络爬虫

时间:2010-11-24 17:24:06

标签: search-engine web-crawler nutch

我正在尝试建立一个专门的搜索引擎网站,为有限数量的网站编制索引。我想出的解决方案是:

  • 使用Nutch作为网络爬虫,
  • 使用Solr作为搜索引擎,
  • 前端和站点逻辑用Wicket编码。

问题在于我发现Nutch非常复杂,而且它是一个很大的自定义软件,尽管事实上不存在详细的文档(书籍,最近的教程......等)。

现在提问:

  1. 对网站漏洞的想法有任何建设性的批评吗?
  2. Nutch(作为网站的爬行部分)是否有一个很好但又简单的替代方案?
  3. 谢谢

5 个答案:

答案 0 :(得分:4)

Scrapy是一个抓取网站的python库。它相当小(与Nutch相比),专为有限的站点爬行而设计。它有一个Django类型的MVC风格,我觉得很容易定制。

答案 1 :(得分:4)

对于抓取部分,我非常喜欢anemonecrawler4j。它们都允许您添加自定义逻辑以进行链接选择和页面处理。对于您决定保留的每个页面,您可以轻松地将调用添加到Solr。

答案 2 :(得分:4)

这取决于您认为抓取的网站数量和网址数量。 Apache Nutch将页面文档存储在Apache HBase上(它依赖于Apache Hadoop),它很可靠但很难设置和管理。

由于抓取工具只是一个页面提取(如CURL)并检索链接列表以提供您的URL数据库,我相信您可以自己编写一个抓取工具(特别是如果您有几个网站),使用一个简单的MySQL数据库(也许像RabbitMQ这样的队列软件来安排抓取工作)。

另一方面,爬虫可能更复杂,您可能希望从HTML文档中删除HEAD部分,并仅保留页面的真实“内容”等...

此外,Nutch可以使用PageRank算法对您的页面进行排名。您可以使用Apache Spark执行相同的操作(更有效率,因为Spark可以将数据缓存在内存中)。

答案 3 :(得分:2)

In,C#,但更简单,你可以直接与作者沟通。 (我)

我曾经使用Nutch,你是对的;这是一个与之合作的熊。

http://arachnode.net

答案 4 :(得分:0)

我相信nutch是您应用程序的最佳选择,但如果您愿意,还有一个简单的工具:Heritrix。 除此之外,我推荐使用js作为前端语言,因为solr返回的json很容易被js处理。