像kayak.com网站如何聚合内容?
问候,我一直在想着一个新项目的想法,并想知道如果有人有任何想法如何像Kayak.com服务能够如此迅速和准确地聚集来自这么多来源的数据。 更具体地说,您认为Kayak.com是否与API交互,或者他们是否抓取/刮取航空公司和酒店网站以满足用户请求? 我知道这样的事情没有一个正确的答案,但我很想知道别人认为什么是一个好方法去做这件事情。 如果有帮助,假装你明天创buildkayak.com …你的数据从哪里来?
我正在旅游行业担任软件架构师/项目负责人,介绍您所描述的项目types – 在我们的地区,我们直接与供应商合作,但是对于外向,我们连接到几个集合商。
为了回答你的问题,你有一些数据,有些你有不同的方式,有些你必须折磨和扭曲,直到承认。
你的angular度是什么?
你要问的问题是…你想卖像Kayak这样的广告吗,还是像Expedia那样去砍? 你在search或出售旅游服务? 你的目标是(如空中旅行)还是一切(住宿,航空公司,租车,交通/观光/会议等附加服务)? 你瞄准地区(美国还是美国的一部分)还是世界? 你到底有多深 – 你只是在一个屏幕上显示几个网站,或者你将不同的服务捆绑在一起,并dynamic打包?
获取数据
如果您要使用Kayak商业模式,您在技术上不需要网站的许可……但是很多网站都有使用IFrame或其他简单方法的联盟计划来将客户引导到他们的网站。 从好的方面来说,你不必处理付款/投诉和旅行者自己。 至于缺点…如果你想自己比较价格,并向用户提供最便宜的select,你将不得不在更深层次上进行整合,这意味着API和网页抓取。
至于网站刮…避免它。 它很烂。 真。 只是不要这样做。 相信我这一个。 例如,有些东西,如低收入者,你不能没有networking抓取。 廉价航空公司靠增值服务而生存。 如果用户没有看到他们的网站,他们不会出售额外的东西,他们没有任何收入。 因此,他们没有关联公司,他们不提供API,他们几乎不断地改变他们的网站布局。 但是,有些公司靠网站抓lowcoster的网站谋生,并把它们包装成好的API。 如果你能负担得起,你可以给你的用户成本比较低成本的航class,这是巨大的。
另一方面,有“正常”的运营商提供API。 因为他们都在国际航空运输协会统一,所以去航空公司并不是什么大问题。 基本上,你从国际航空运输协会购买,而国际航空运输协会将这笔钱分配给运营商 但是,您可能不希望直接连接到运营商networking。 他们现在有Web服务和SOAP,但是当我说有SOAP协议的时候,相信我只是一个非常简洁的包装文本提示,通过它你可以用一个80es风格的协议与大型机进行交互(想一想Unix提示每个命令的收费位置;一次search大约需要20条命令)。 这就是为什么你可能想连接一些更多的食物链,更好的API。
因此,航空公司既处于高斯曲线的极端, 一方面是单独的供应商,另一方面是其他高度集中的系统,您可以在其中实施一个API,并且可以在世界任何地方飞行。 住宿和其他旅游产品之间。 有几家聚合酒店的大玩家,还有大量的聚集商只占部分频谱的小供应商。 例如,你可以租一座灯塔,甚至没有那么昂贵 – 但你不能在一个地方比较不同灯塔的价格。
如果您使用Kayak商业模式,那么您最终可能会抓取网站。 如果您要整合不同的提供商,那么您通常会使用API,其中一些非常好,其中大部分都是可以接受的。 我没有使用过RSS,但是RSS和网页抓取没有太大的区别。 杰夫的答案中还没有提到第四种select,例如通过FTP和类似方法获得数据的那个。
生活吸(迷你嚷)
然后是复杂性。 你想增加的价值越多,你就必须处理越复杂。 你可以search允许宠物的住宿吗? 对于距离市中心不到5公里的旅馆? 你们是否结合了航class,并且你能保证旅客有足够的时间从一个机场到另一个机场…你可以提前出售运输吗? 一位着名的大提琴手不想从他18世纪的大提琴中脱颖而出, 你能把他卖给大提琴的另一个位子吗(是的,不是这个)?
想比较价格? 当然,这个房间是每晚30欧元。 但是,你可以得到一个双倍的30和一个单一的20,或者你可以得到一个加倍的床,第三人获得70%的折扣。 但是,只有当它是一个12岁以下的孩子, 我们的加床不适合成人。 而且,在search结果中,只有在计算最终价格时,才能获得加价的价格。
甚至不要让我开始dynamic包装。 想要出售住宿+租车? 没问题; 与两个不同的提供者集成,然后离开你去…手动更新城市中的地点列表(从汽车租赁提供商)到与酒店(来自住宿提供者,谁给你每个酒店只有城市)匹配。 当然,只要你已经匹配了两个城市的名单,因为没有国际标准的城市代码。
与许多其他产业很多的产业不同,旅游业有许多非常复杂的产品。 亚马逊很容易; 卖书和卖土豆,这是一回事; 你甚至可以把它们放在同一个盒子里。 它们很容易结合,而不是从很多部分组装起来。 🙂
PS链接到一个有趣的最近线索在黑客新闻与一些关于航class的内幕信息 。 PPS最近,偶然发现了一篇关于IATA NDC协议的博客,虽然这篇博文是关于旅游业如何联系的,但是历史教训是如何形成的 。
他们使用ITA Software这样的软件包 ,这是Google正在采用的一个公司。
我只知道从网站获取数据的三种方式。
RSS源 – 我们使用rss提供了很多在我的公司整合现有的网站的数据与我们的应用程序。 这是快速的,大多数网站已经有一个RSS提要可用。 这个问题并不是所有的站点都能正确地实现RSS标准,所以如果你从很多站点上的RSS提要中提取数据,那么确保你编写代码,以便你可以很容易地添加exception和filter。
APIs – 如果devise得很好,并且拥有所有你需要的信息,这些都很好,但事实并非总是如此,如果站点没有使用标准的API格式,那么你将不得不支持多个API。
Web刮 – 这种方法是最不可靠的,也是最昂贵的维护。 但是,如果你没有别的东西,那么可以做到。
这篇文章说皮艇被要求停止报废一些航空公司的网页。 这使我相信,他们可能会在与他们没有任何关系的网站(以及与该关系相关的数据馈送)上进行search。
Travelport提供了一种名为“通用API”的产品,连接到航class和酒店以及汽车租赁公司,并应付一揽子交易和各种复杂的税收和汇率问题:
https://developer.travelport.com/app/developer-network/resource-centre-uapi
我刚开始使用它,到目前为止似乎很好。 查询速度有点慢,但每个OTA(在线旅行代理商)的网站上的每个查询也是如此。
我最近从航class比较网站find了两个好的API
有一个来自Wego ,另一个来自Skyscanner 。 这两个航空公司的数据似乎都有很好的范围和广度,也有很好的文件。
每次用户点击您的应用程序到预订网站时,我们都会收取费用,Skyscanner向关联公司支付50%的“收入”(我假设这意味着他们从航空公司获得的佣金)
这是一个旧post,但我想我只是补充。 我是一名数据架构师,为一家为这些旅游网站提供内容的公司工作。 该公司与许多酒店品牌,个人酒店和其他内容提供商签订了合同。 我们汇总这些信息,然后传递到不同的渠道。 然后他们再聚集到他们的系统。 大GDS系统也是内容提供者。 聚合由许多方法完成…匹配algorithm(内部)和密钥。 作为一个聚合服务,我们需要在客户端进行交stream。
希望这可以帮助! 干杯!