20

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

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

问题是我发现 Nutch 相当复杂,而且它是一个需要定制的大软件,尽管不存在详细的文档(书籍、最近的教程等)。

现在的问题:

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

谢谢

4

5 回答 5

4

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

于 2011-02-27T14:35:26.507 回答
4

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

由于爬虫只是一个页面获取(如 CURL)并检索链接列表以提供您的 URL 数据库,我相信您可以自己编写一个爬虫(特别是如果您有几个网站),使用一个简单的MySQL 数据库(可能是 RabbitMQ 之类的队列软件来安排爬取作业)。

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

此外,Nutch 可以使用 PageRank 算法对您的页面进行排名,您可以使用 Apache Spark 来做同样的事情(更有效,因为 Spark 可以在内存中缓存数据)。

于 2014-05-02T08:38:19.693 回答
4

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

于 2010-11-24T17:57:03.593 回答
2

中,C#,但简单很多,可以直接与作者交流。(我)

我曾经使用过 Nutch,你是对的;这是一只熊。

http://arachnode.net

于 2013-03-03T20:33:21.673 回答
0

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

于 2014-08-13T07:00:32.240 回答