如何构建聚合器?

时间:2009-05-29 22:36:15

标签: web-services aggregation web-crawler nutch

假设我想从多个来源(可能是旅行,技术或其他)汇总与特定利基相关的信息。 我该怎么做?

让蜘蛛/抓取工具抓取网页以查找我需要的信息(我如何告诉抓取工具抓取什么,因为我不想获取整个网络?)? 然后有一个索引系统来索引和组织我抓取的信息,也是一个搜索引擎?

像Nutch lucene.apache.org/nutch这样的系统可以用于我想要的吗?你还推荐别的吗?

或者你能推荐另一种方法吗?

例如,Techmeme.com是如何构建的? (它是技术新闻的聚合器,它完全自动化 - 直到最近他们还增加了一些人为干预)。 建立这样的服务需要什么?

或者Kayak.com如何汇总他们的数据? (这是旅行聚合服务。)

3 个答案:

答案 0 :(得分:8)

这一切都取决于您正在寻找的聚合器。

类型:

  • 错误定义 - 一般来说,这要求您的数据源在确定信息类型时非常灵活(回答问题是这个网站/信息旅行相关?幽默?与业务相关?)
  • 具体 - 这放宽了数据存储中的要求,即所有数据都是特定旅行相关的,需要航班,酒店价格等。

典型地,聚合器是子程序系统:

  1. Grabber,它搜索并抓取所有需要汇总的内容
  2. 汇总 - 这通常通过对数据库的查询来完成,并且可以根据用户偏好[通过编程逻辑]进行调整
  3. 查看 - 这格式化了用户希望看到的信息,并可以回复用户对所建议项目的喜欢或不喜欢的反馈。

答案 1 :(得分:1)

基本外观 - 请查看:http://en.wikipedia.org/wiki/Aggregator

它将概述聚合器。

关于如何构建自己的聚合器,如果您正在寻找可以让您满意的开箱即用的东西 - 我建议:http://dailyme.com/

如果您正在寻找构建自己的聚合器服务的代码库/架构 - 我建议您直接查看 - 例如:从http://www.reddit.com/打开Reddit

答案 2 :(得分:1)

您需要定义应用程序的功能。构建自己的网络爬虫是一项艰巨的任务,因为当您发现需要它们时,您会不断添加新功能......只会使您的设计复杂化......

构建聚合器有很大不同。 虽然抓取工具只是检索以后要处理的数据,但聚合器会获取已定义的数据集并将它们放在一起。如果您使用聚合器,您可能希望查找已定义的旅行Feed,提要,旅行数据等...聚合器更容易构建IMO,但它更受限制。

如果你想要构建一个爬虫,你需要定义起始页面,定义结束条件(爬行深度,时间等等)等等,然后仍然处理数据(即聚合,总结等等。)