首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >像kayak.com这样的网站是如何聚合内容的?

像kayak.com这样的网站是如何聚合内容的?
EN

Stack Overflow用户
提问于 2011-01-06 01:27:51
回答 7查看 78.8K关注 0票数 84

问候,我一直在玩弄一个新项目的想法,想知道是否有人知道像Kayak.com这样的服务如何能够如此快速和准确地从如此多的来源聚合数据。更具体地说,你认为Kayak.com是在与API交互,还是在爬行/抓取航空公司和酒店网站,以满足用户的请求?我知道对于这类问题没有一个正确的答案,但我很好奇其他人认为什么是解决这个问题的好方法。如果有帮助,假装你明天要创建kayak.com……您的数据从何而来?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-01-06 14:02:04

我在旅游行业担任软件架构师/项目负责人,负责您所描述的项目-在我们地区,我们直接与供应商合作,但对于外发,我们连接到几个聚合器。

回答你的问题..。一些你拥有的数据,一些你以各种方式获得的数据,还有一些你不得不折磨和扭曲直到它承认为止。

你的角度是什么?

你要问的问题是...你是想像Kayak那样卖广告,还是想像Expedia那样抽成?你是从事搜索还是销售旅游服务?你的目标是利基市场(例如,航空旅行)还是一切(住宿、航空公司、租车、交通/观光/会议等附加服务)?你的目标是地区(美国或美国的一部分)还是世界?你有多深入--你只是在一个屏幕上显示几个网站,还是你将不同的服务捆绑在一起并动态打包?

获取数据

如果你使用Kayak商业模式,从技术上讲,你不需要网站的许可...但许多网站都有IFrames的会员计划或其他简单的方式将客户引导到他们的网站。从好的方面来说,你不必处理付款/投诉和旅行者本身。至于缺点。如果你想自己比较价格,并将最便宜的选项呈现给用户,你必须在更深的层面上集成,这意味着API和web抓取。

至于网络抓取..。避免它。真没意思。真的。不要这样做。相信我这一次。例如,一些东西,如低成本,你不能没有网络抓取。低成本航空公司依靠增值服务生存。如果用户看不到他们的网站,他们就不会卖额外的东西,也不会赚到任何东西。因此,他们没有分支机构,他们不提供API,他们几乎不断地改变他们的网站布局。然而,也有一些公司通过网络抓取低成本网站并将其包装成漂亮的API来谋生。如果你能负担得起,你可以给你的用户提供低成本航班的成本比较,这是巨大的。

另一方面,也有提供API的“普通”运营商。到达航空公司并不是什么大问题,因为它们都是在IATA下联合起来的;基本上,你从国际航空运输协会购买,国际航空运输协会将资金分配给航空公司。但是,您可能不希望直接连接到运营商网络。他们现在有web服务和SOAP,但相信我,当我说有SOAP协议时,SOAP协议只是一个围绕在文本提示符周围的超薄的包装器,通过它您可以使用80ES风格的协议与大型机进行交互(想想Unix提示符,其中您是按命令计费的;执行一次搜索需要大约20个命令)。这就是为什么你可能想要用更好的API连接到食物链下面的人。

因此,航空公司处于高斯曲线的两端;一边是个人供应商,另一边是高度集中的系统,在那里您实现了一个API,您可以在世界上的任何地方飞行。住宿和其他旅游产品介于两者之间。有几个大的参与者聚合了酒店,还有大量的小供应商,他们有很多的聚合器,只覆盖了一部分。例如,你可以租一座灯塔,它甚至不是那么贵--但你不能在一个地方比较不同灯塔的价格。

如果你对Kayak商业模式感兴趣,你可能最终会抓取网站。如果您要集成不同的提供程序,您将经常使用API,其中一些非常好,而大多数是可以容忍的。我没有使用过RSS,但是RSS和web抓取之间没有太大的区别。还有第四种选择,在Jeff的回答中没有提到...每晚获取数据的地方,例如通过FTP或类似方式获取.CSV文件。

生活糟透了(迷你咆哮)

然后就有了复杂性。你想增加的价值越多,你必须处理的复杂性就越大。你能搜索一下允许携带宠物的住宿吗?住在离市中心不到5公里的旅社里?您是否合并航班,您是否能够保证旅行者有足够的时间从一个机场到另一个机场……你能提前把运输卖出去吗?一个著名的大提琴演奏家不想放弃他18世纪的珍贵大提琴;你能卖给他另一个大提琴座位吗(是的,这个不是虚构的)?

想要比较价格吗?当然可以,房间每晚收费30欧元。但你可以30人一张双人床,20人一张单人床,或者你可以在双人床上加一张床,为第三人提供七折优惠。但只有12岁以下的儿童才能入住;我们的加床不是给成年人的。而且你不会在搜索结果中得到额外床位的价格--只有当你计算出最终价格时。

甚至不要让我开始使用动态打包。想要出售住宿+租车吗?没问题;集成两个不同的提供商,然后就可以开始了……手动更新城市中的位置列表(来自租车提供商)以匹配酒店(来自住宿提供商,他们只为您提供每个酒店的城市)。当然,前提是您已经匹配了这两个城市的列表,因为没有城市代码的国际标准。

与其他许多产品众多的行业不同,旅游业有许多非常复杂的产品。亚马逊的做法很简单;卖书和卖土豆是一回事;你甚至可以把它们装在同一个箱子里运送。它们很容易组合,并且不是由许多部件组装而成的。:)

附注:用一些insider info regarding flights链接到黑客新闻最近的一个有趣的帖子。附注:最近在IATA's NDC protocol with overview of how travel industry is connected and a history lesson how this came to be上偶然发现了一篇很棒的博文,虽然有些陈旧。

票数 148
EN

Stack Overflow用户

发布于 2011-01-06 11:23:45

他们使用像ITA Software这样的软件包,这是谷歌正在收购的公司之一。

票数 9
EN

Stack Overflow用户

发布于 2011-01-06 05:58:00

据我所知,只有3种方法可以从网站获取数据。

RSS Feeds我们公司经常使用rss feeds将现有网站的数据集成到我们的应用程序中。它的速度很快,而且大多数网站都已经有了RSS提要。这样做的问题是,并不是所有的站点都正确地实现了RSS标准,因此,如果您要从许多站点的许多RSS提要中提取数据,那么请确保您编写的代码能够轻松地添加异常和过滤器。

api -如果它们设计得很好,并且包含您需要的所有信息,那么这些API是很好的,但是情况并不总是这样,另外,如果站点不使用标准API格式,那么您必须支持多个API。

Web抓取-这种方法是最不可靠的,也是维护成本最高的。但是如果你什么都没有了,这是可以做到的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4607141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档