为垂直搜索引擎开发爬虫和刮刀

时间:2009-07-05 17:14:11

标签: search screen-scraping search-engine web-crawler

我需要开发一个垂直搜索引擎作为网站的一部分。搜索引擎的数据来自特定类别的网站。我想为此我需要一个爬虫爬行几个(几百个)站点(在特定的业务类别中)并提取产品和服务的内容和URL。其他类型的页面可能无关紧要。大多数网站都很小或很小(最多几百页)。该产品具有10到30个属性。

关于如何编写这样的爬虫和提取器的任何想法。我使用通常的ruby库编写了一些爬虫和内容提取器,但不是一个完整的搜索引擎。我猜,爬虫不时醒来并从网站上下载页面。当然,将遵循通常的礼貌行为,例如检查机器人排除规则。内容提取器可以在读取页面后更新数据库。如何同步爬虫和提取器?它们应该紧密集成在一起吗?

2 个答案:

答案 0 :(得分:3)

Nutch以Lucene为基础,已经实现了一个爬虫和几个文档解析器。 您还可以hook it to Hadoop获得可扩展性。

答案 1 :(得分:1)

在我以前工作的企业搜索环境中,

  • 抓取工具,

  • 内容提取器,

  • 搜索引擎索引(以及将内容加载到这些索引中),

  • 能够高效地查询数据,并与各种搜索运算符一起查询,

  • 所有这些图层的编程接口,

  • 可选地,面向用户的GUI

是所有单独的主题。

(例如,在从HTML页面提取有用信息时,VS PDF VS MS Word文件在概念上是相似的,对于任何通用解决方案,这些任务的实际编程仍然非常有用。)

您可能希望查看Lucene开源工具套件,了解它们如何组合在一起,并可能决定学习如何使用这些工具(或其他类似工具),而不是重新发明非常大,复杂的轮子。

我相信书籍,所以多亏了你的查询,我发现了这本书并且刚订购了它。对搜索工具的一个可能的解决方案看起来很好。

http://www.amazon.com/Building-Search-Applications-Lucene-LingPipe/product-reviews/0615204252/ref=cm_cr_pr_hist_5?ie=UTF8&showViewpoints=0&filterBy=addFiveStar

祝你好运,让我们知道你发现了什么以及你决定采取的方法。