我正在尝试建立一个专门的搜索引擎网站,它索引有限数量的网站。我想出的解决方案是:
- 使用 Nutch 作为网络爬虫,
- 使用 Solr 作为搜索引擎,
- 前端和站点逻辑使用 Wicket 进行编码。
问题是我发现 Nutch 相当复杂,而且它是一个需要定制的大软件,尽管不存在详细的文档(书籍、最近的教程等)。
现在的问题:
- 对网站的漏洞理念有任何建设性的批评吗?
- Nutch(作为网站的爬行部分)是否有一个很好但简单的替代方案?
谢谢
我正在尝试建立一个专门的搜索引擎网站,它索引有限数量的网站。我想出的解决方案是:
问题是我发现 Nutch 相当复杂,而且它是一个需要定制的大软件,尽管不存在详细的文档(书籍、最近的教程等)。
现在的问题:
谢谢
这取决于您认为抓取的网站数量和 URL 数量。Apache Nutch 将页面文档存储在 Apache HBase(依赖于 Apache Hadoop)上,它很可靠,但很难设置和管理。
由于爬虫只是一个页面获取(如 CURL)并检索链接列表以提供您的 URL 数据库,我相信您可以自己编写一个爬虫(特别是如果您有几个网站),使用一个简单的MySQL 数据库(可能是 RabbitMQ 之类的队列软件来安排爬取作业)。
另一方面,爬虫可能更复杂,您可能希望从 HTML 文档中删除 HEAD 部分,并仅保留页面的真实“内容”等......
此外,Nutch 可以使用 PageRank 算法对您的页面进行排名,您可以使用 Apache Spark 来做同样的事情(更有效,因为 Spark 可以在内存中缓存数据)。
Scrapy是一个爬取网站的 Python 库。它相当小(与 Nutch 相比),专为有限的站点抓取而设计。它有一个 Django 类型的 MVC 风格,我发现它很容易定制。
我相信 nutch 是您应用程序的最佳选择,但如果您愿意,有一个简单的工具:Heritrix。除此之外,我推荐使用 js 作为前端语言,因为 solr 返回的 json 很容易被 js 处理。