Wie aggregiert eine Website wie kayak.com Inhalte? [geschlossen]


82

Grüße, ich habe mit einer Idee für ein neues Projekt gespielt und mich gefragt, ob jemand eine Idee hat, wie ein Dienst wie Kayak.com Daten aus so vielen Quellen so schnell und genau aggregieren kann. Glauben Sie, dass Kayak.com mit APIs interagiert oder dass sie Websites von Fluggesellschaften und Hotels crawlen / kratzen, um Benutzeranfragen zu erfüllen? Ich weiß, dass es für diese Art von Dingen keine richtige Antwort gibt, aber ich bin gespannt, was andere für einen guten Weg halten. Wenn es hilft, tun Sie so, als würden Sie morgen kayak.com erstellen ... woher kommen Ihre Daten?

Antworten:


146

Ich arbeite in der Reisebranche als Softwarearchitekt / Projektleiter an genau der Art von Projekt, die Sie beschreiben. In unserer Region arbeiten wir direkt mit Lieferanten zusammen, aber für ausgehende Verbindungen verbinden wir uns mit mehreren Aggregatoren.

Um Ihre Frage zu beantworten ... einige Daten haben Sie, einige erhalten Sie auf verschiedene Weise, und einige müssen Sie foltern und verdrehen, bis sie gestehen.

Was ist dein Blickwinkel?

Die Fragen, die Sie stellen müssen, sind ... Möchten Sie Werbung wie Kayak verkaufen oder einen Schnitt wie Expedia machen? Sind Sie auf der Suche oder im Verkauf von Reisedienstleistungen? Zielen Sie auf Nischen (z. B. nur Flugreisen) oder auf alles (Unterkunft, Fluggesellschaften, Mietwagen, zusätzliche Dienstleistungen wie Transport / Besichtigungen / Konferenzen usw.)? Zielen Sie auf die Region (USA oder Teile der USA) oder die Welt? Wie tief gehen Sie - zeigen Sie nur mehrere Websites auf einem einzigen Bildschirm an oder bündeln Sie verschiedene Dienste und packen sie dynamisch?

Daten abrufen

Wenn Sie sich für das Geschäftsmodell von Kayak entscheiden, benötigen Sie technisch gesehen keine Website-Erlaubnis. Viele Websites verfügen jedoch über Partnerprogramme mit IFrames oder andere einfache Möglichkeiten, um den Kunden auf seine Website zu leiten. Auf der positiven Seite müssen Sie sich nicht mit Zahlungen / Beschwerden und Reisenden selbst befassen. Was die Nachteile angeht ... Wenn Sie die Preise selbst vergleichen und dem Benutzer die günstigste Option präsentieren möchten, müssen Sie sie auf einer tieferen Ebene integrieren, und das bedeutet APIs und Web Scraping.

Was das Web-Scraping betrifft ... vermeiden Sie es. Es nervt. Ja wirklich. Tu es einfach nicht. Vertrau mir dieses mal. Zum Beispiel einige Dinge wie niedrige Kosten, die Sie nicht ohne Web Scraping bekommen können. Billigfluggesellschaften leben von Mehrwertdiensten. Wenn der Benutzer seine Website nicht sieht, verkauft er keine zusätzlichen Inhalte und verdient nichts. Daher haben sie keine Partner, bieten keine APIs an und ändern ihr Site-Layout fast ständig. Es gibt jedoch Unternehmen, die ihren Lebensunterhalt damit verdienen, die Websites von Lowcoster im Internet zu kratzen und sie in nette APIs zu verpacken. Wenn Sie sie sich leisten können, können Sie Ihren Benutzern einen Kostenvergleich von Billigflügen geben, und das ist enorm.

Andererseits gibt es "normale" Carrier, die APIs anbieten. Es ist kein so großes Problem, zu Fluggesellschaften zu gelangen, da sie alle unter der IATA vereint sind . Grundsätzlich kaufen Sie bei der IATA und die IATA verteilt das Geld an die Spediteure. Sie möchten jedoch wahrscheinlich keine direkte Verbindung zum Carrier-Netzwerk herstellen. Sie haben heutzutage Webdienste und SOAP, aber glauben Sie mir, wenn ich sage, dass es SOAP-Protokolle gibt, die nur wahnsinnig dünne Wrapper um eine Eingabeaufforderung sind, über die Sie mit einem Mainframe mit einem Protokoll im 80er-Stil interagieren können (denken Sie an ein Unix Eingabeaufforderung, wo Sie pro Befehl abgerechnet werden; und es dauert ungefähr 20 Befehle, um eine Suche durchzuführen). Aus diesem Grund möchten Sie wahrscheinlich mit einer besseren API eine Verbindung zu jemandem herstellen, der sich etwas weiter unten in der Nahrungskette befindet.

Die Fluggesellschaften befinden sich somit auf beiden Extremen der Gaußschen Kurve. Auf der einen Seite befinden sich einzelne Lieferanten und auf der anderen Seite stark zentralisierte Systeme, in denen Sie eine API implementieren und überall auf der Welt fliegen können. Die Unterkunft und der Rest der Reiseprodukte liegen dazwischen. Es gibt mehrere große Unternehmen, die Hotels zusammenfassen, und eine Menge kleiner Anbieter mit vielen Aggregatoren, die nur einen Teil eines Spektrums abdecken. Sie können beispielsweise einen Leuchtturm mieten und es ist sogar nicht so teuer - aber Sie können die Preise verschiedener Leuchttürme nicht an einem Ort vergleichen.

Wenn Sie sich für das Geschäftsmodell von Kayak interessieren, werden Sie wahrscheinlich Websites kratzen. Wenn Sie verschiedene Anbieter integrieren möchten, arbeiten Sie häufig mit APIs, von denen einige ziemlich gut und die meisten tolerierbar sind. Ich habe nicht mit RSS gearbeitet, aber es gibt keinen großen Unterschied zwischen RSS und Web Scraping. Es gibt auch eine vierte Option, die in Jeffs Antwort nicht erwähnt wird ... die, bei der Sie Ihre Daten jede Nacht erhalten, zum Beispiel CSV-Dateien über FTP und ähnliches.

Das Leben ist scheiße (Mini-Rant)

Und dann ist da noch Komplexität. Je mehr Wert Sie hinzufügen möchten, desto komplexer müssen Sie umgehen. Können Sie Unterkünfte suchen, in denen Haustiere erlaubt sind? Für ein Hostel, das weniger als 5 km vom Stadtzentrum entfernt liegt? Kombinieren Sie Flüge und können Sie garantieren, dass der Reisende genügend Zeit hat, um von einem Flughafen zum anderen zu gelangen? Können Sie den Transport im Voraus verkaufen? Ein berühmter Cellist möchte sich nicht von seinem kostbaren Cello aus dem 18. Jahrhundert trennen. Kannst du ihm einen anderen Platz für das Cello verkaufen (ja, diesen nicht erfinden)?

Möchten Sie die Preise vergleichen? Sicher, das Zimmer kostet 30 EUR pro Nacht. Aber Sie können entweder ein Doppel für 30 und ein Einzel für 20 bekommen, oder Sie können ein Zustellbett in einem Doppel bekommen und 70% Rabatt für die dritte Person bekommen. Aber nur, wenn es sich um ein Kind unter 12 Jahren handelt. Unsere Zustellbetten sind nicht für Erwachsene. Und Sie erhalten den Preis für ein Zustellbett nicht in den Suchergebnissen - nur wenn Sie den Endpreis berechnen.

Und lassen Sie mich nicht einmal mit dynamischen Verpackungen anfangen. Möchten Sie Unterkunft + Mietwagen verkaufen? Kein Problem; Integrieren Sie sich in zwei verschiedene Anbieter, und los geht's ... manuelle Aktualisierung der Liste der Standorte in der Stadt (vom Mietwagenanbieter), um sie mit den Hotels abzugleichen (vom Unterkunftsanbieter, der Ihnen nur die Stadt für jedes Hotel angibt). Vorausgesetzt natürlich, Sie haben bereits die Liste der Städte der beiden Städte abgeglichen, da es keinen internationalen Standard für Stadtcodes gibt.

Im Gegensatz zu vielen anderen Branchen mit vielen Produkten hat die Reisebranche viele sehr komplexe Produkte. Amazon hat es einfach; Bücher verkaufen und Kartoffeln verkaufen, das ist das Gleiche; Sie können sie sogar in derselben Box versenden. Sie lassen sich leicht kombinieren und sind nicht aus vielen Teilen zusammengesetzt. :) :)

PS Link zu einem interessanten aktuellen Thread in den Hacker News mit einigen Insider-Informationen zu Flügen . PPS stolperte kürzlich über einen großartigen, wenn auch ziemlich alten Blogpost zum NDC-Protokoll der IATA mit einem Überblick über die Vernetzung der Reisebranche und einer Geschichtsstunde, wie dies zustande kam .


Domchi, hat sich das in diesem Jahr sehr verändert? Gibt es jetzt andere APIs?
Rizwan Kassim

Nein, nicht viel; Der Markt ist fragmentiert und es ist unwahrscheinlich, dass sich dies bald ändern wird, wenn überhaupt. Bemerkenswertes Ereignis ist der Eintritt von Google in den Flugmarkt (über ITA Software, siehe Antwort von mavrcks); Sie haben die Ressourcen, um den Markt zu konsolidieren und APIs anzubieten, aber ich bezweifle, dass sie dies beabsichtigen / können. In der Startup-Welt ist airbnb.com wahrscheinlich der interessanteste Konkurrent, aber bisher bieten sie keine API an. APIs in dieser Domäne sind nicht schwer zu finden, aber selten kostenlos. Eine gute API-Liste finden Sie unter programmableweb.com/apitag/booking und programmableweb.com/apitag/travel .
Domchi

Wollen Sie damit sagen, dass Kayak.com die Websites der Fluggesellschaften nach Inhalten durchsucht und nicht dafür bezahlen muss? Was ist mit ihrem Geschäftsmodell, das ihnen das ermöglicht? Die Nutzungsbedingungen für die großen Fluggesellschaften scheinen zu sagen, dass man Inhalte / Daten nicht von ihrer Website zur Verwendung auf einer anderen Website kratzen kann.
Ryan Bales

@Ryan Ich kann nicht sagen, was Kayak macht, aber ich weiß, dass die meisten Billigfluggesellschaften keine APIs anbieten, um den Umsatz ausschließlich über ihre Websites zu steigern und so viel wie möglich zu verkaufen. Aggregatoren verschrotten also ihre Websites und simulieren die Benutzerinteraktion. Als Reaktion darauf ändern Fluggesellschaften häufig die Website-Struktur und das Katz- und Mausspiel geht weiter. Ich würde mir vorstellen, dass es für Fluggesellschaften ziemlich schwierig ist, zu beweisen, dass dies so weitergeht, aber sie wissen davon und wollen es wahrscheinlich nicht ganz verhindern, da sie den Verkehr wollen, den sie sonst nicht bekommen würden.
Domchi

@ Domchi wie ist das, was du beschreibst, legal? Nach dem, was ich gelesen habe, wurde Web-Scraping in verschiedenen Gerichtsverfahren in Bezug auf Airline-Daten, eBay-Listings und andere (insbesondere für die kommerzielle Nutzung dieser Daten) als illegal eingestuft.
Justin Skiles


7

Ich kenne nur drei Möglichkeiten, um Daten von Websites abzurufen.

RSS-Feeds - In meinem Unternehmen verwenden wir häufig RSS-Feeds, um die Daten der vorhandenen Site in unsere Apps zu integrieren. Es ist schnell und auf den meisten Websites ist bereits ein RSS-Feed verfügbar. Das Problem dabei ist, dass nicht alle Sites den RSS-Standard ordnungsgemäß implementieren. Wenn Sie also Daten aus vielen RSS-Feeds über viele Sites hinweg abrufen, schreiben Sie Ihren Code, damit Sie problemlos Ausnahmen und Filter hinzufügen können.

APIs - Diese sind nützlich, wenn sie gut gestaltet sind und alle benötigten Informationen enthalten. Dies ist jedoch nicht immer der Fall. Wenn die Websites kein Standard-API-Format verwenden, müssen Sie mehrere APIs unterstützen.

Web Scraping - Diese Methode ist sowohl unzuverlässig als auch teuer in der Wartung. Aber wenn Sie nichts anderes mehr haben, können Sie es tun.


4

Travelport bietet ein Produkt namens "Universal API" an, das eine Verbindung zu Flügen und Hotels sowie Mietwagenfirmen herstellt und mit Pauschalangeboten und all den verschiedenen Komplexitäten im Zusammenhang mit Steuern und Wechselkursen fertig wird:

https://developer.travelport.com/app/developer-network/resource-centre-uapi

Ich habe gerade angefangen, es zu benutzen und es scheint soweit in Ordnung zu sein. Die Abfragen sind etwas langsam, aber auch jede Abfrage auf der Website jedes OTA (Online-Reisebüros).


Was kostet die Verwendung der Universal API?
Amit

1
Ich habe vergessen. Eine einmalige Gebühr in den niedrigen Tausenden plus eine jährliche Gebühr in den niedrigen Tausenden, denke ich.
Tim Cooper

Ist die universelle API für Mobilgeräte verfügbar?
iSrinivasan27

3

Dieser Artikel besagt, dass Kayak gebeten wurde, das Verschrotten einer bestimmten Fluglinienseite einzustellen. Das lässt mich glauben, dass sie wahrscheinlich auf Websites kratzen, zu denen sie keine Beziehung haben (und einen Daten-Feed, der mit dieser Beziehung verbunden ist).


2

Es gibt zwei gute APIs, die ich kürzlich auf Flugvergleichs-Websites gefunden habe

Es gibt einen von Wego und einen von Skyscanner . Beide scheinen eine gute Reichweite und Breite von Daten einer Reihe von Fluggesellschaften sowie eine gute Dokumentation zu haben.

Wego zahlt jedes Mal, wenn ein Benutzer von Ihrer App auf eine Buchungswebsite klickt und Skyscanner verbundenen Unternehmen 50% des Umsatzes zahlt (ich gehe davon aus, dass dies die Provision bedeutet, die sie von Fluggesellschaften erhalten).


4
Zu Ihrer Information: Wego berechnet außerdem 1000 USD pro Jahr für das Privileg, ihre API nutzen zu dürfen.
Sk446

Richtig. Zusätzlich zu meinem Beitrag (da ich jetzt ein bisschen mehr weiß) zahlt Skyscanner pro Exit-Klick auf die gleiche Weise wie Wego.
Jonathon Blok

Wissen Sie, ob Skyscanner Pläne für die Hotelsuche hat, da es so aussieht, als würden sie gerade Flug / Auto fahren?
Sk446

2
Hallo, Skyscanner API-Team hier. Hotels sind in Arbeit. Bitte besuchen Sie business.skyscanner.net, wenn Sie die Verwendung einer unserer APIs (Flüge, Mietwagen, Hotels) besprechen möchten.
Skyscanner

Ich habe gerade SkyScanner überprüft. Neue Entwickler sind für sie wertlos. Sie können ihre Flug-API nur verwenden, wenn Ihre Website mindestens 200.000 eindeutige Besuche pro Monat generiert! Erbärmlich!
Hajjat

0

Dies ist ein alter Beitrag, aber ich dachte, ich würde nur hinzufügen. Ich bin ein Datenarchitekt, der für ein Unternehmen arbeitet, das diese Reiseseiten mit Inhalten versorgt. Dieses Unternehmen schließt Verträge mit vielen Hotelmarken, einzelnen Hotels und anderen Inhaltsanbietern ab. Wir aggregieren diese Informationen und geben sie dann an die verschiedenen Kanäle weiter. Sie aggregieren dann wieder zu ihrem System. Die Large GDS-Systeme sind auch Inhaltsanbieter. Die Aggregation erfolgt nach vielen Methoden ... Matching-Algorithmen (intern) und Schlüssel. Als Aggregationsdienst müssen wir auf Client-Ebene kommunizieren.

Hoffe das hilft! Prost!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.