我需要开发一个垂直搜索引擎作为网站的一部分。搜索引擎的数据来自特定类别的网站。我想为此我需要一个爬虫爬行几个(几百个)站点(在特定的业务类别中)并提取产品和服务的内容和URL。其他类型的页面可能无关紧要。大多数网站都很小或很小(最多几百页)。该产品具有10到30个属性。
关于如何编写这样的爬虫和提取器的任何想法。我使用通常的ruby库编写了一些爬虫和内容提取器,但不是一个完整的搜索引擎。我猜,爬虫不时醒来并从网站上下载页面。当然,将遵循通常的礼貌行为,例如检查机器人排除规则。内容提取器可以在读取页面后更新数据库。如何同步爬虫和提取器?它们应该紧密集成在一起吗?
答案 0 :(得分:3)
Nutch以Lucene为基础,已经实现了一个爬虫和几个文档解析器。 您还可以hook it to Hadoop获得可扩展性。
答案 1 :(得分:1)
在我以前工作的企业搜索环境中,
抓取工具,
内容提取器,
搜索引擎索引(以及将内容加载到这些索引中),
能够高效地查询数据,并与各种搜索运算符一起查询,
所有这些图层的编程接口,
可选地,面向用户的GUI
是所有单独的主题。
(例如,在从HTML页面提取有用信息时,VS PDF VS MS Word文件在概念上是相似的,对于任何通用解决方案,这些任务的实际编程仍然非常有用。)
您可能希望查看Lucene开源工具套件,了解它们如何组合在一起,并可能决定学习如何使用这些工具(或其他类似工具),而不是重新发明非常大,复杂的轮子。
我相信书籍,所以多亏了你的查询,我发现了这本书并且刚订购了它。对搜索工具的一个可能的解决方案看起来很好。
祝你好运,让我们知道你发现了什么以及你决定采取的方法。