it-swarm.com.de

Wie fasst eine Website wie kayak.com Inhalte zusammen?

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 zusammenfassen kann. Denken Sie insbesondere, dass Kayak.com mit APIs interagiert oder die Websites von Fluggesellschaften und Hotels durchsucht, um die Anforderungen der Benutzer zu erfüllen? Ich weiß, dass es für diese Art von Sache keine richtige Antwort gibt, aber ich bin neugierig, was andere meinen, wäre ein guter Weg, um dies zu bewerkstelligen. Wenn es Ihnen hilft, tun Sie so, als würden Sie morgen kayak.com erstellen ... woher stammen Ihre Daten?

79
Jeff

Ich arbeite in der Reisebranche als Softwarearchitekt/Projektleiter für genau die Art von Projekt, die Sie beschreiben. In unserer Region arbeiten wir direkt mit Lieferanten zusammen, aber für Outgoing 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 quälen und verdrehen, bis es gesteht.

Was ist dein Blickwinkel?

Die Fragen, die Sie sich stellen müssen, sind: Möchten Sie Werbung wie Kayak verkaufen oder einen Schnitt wie Expedia machen? Möchten Sie Reisedienstleistungen suchen oder verkaufen? Zielen Sie Nischen (zum Beispiel nur Flugreisen) oder alles (Unterkunft, Fluggesellschaften, Mietwagen, zusätzliche Dienstleistungen wie Transport/Besichtigungen/Konferenzen usw.)? Zielen Sie auf die Region (USA oder einen Teil 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 sie dynamisch?

Daten abrufen

Wenn Sie sich für das Kayak-Geschäftsmodell entscheiden, benötigen Sie technisch gesehen keine Erlaubnis der Site. Viele Sites haben jedoch Partnerprogramme mit IFrames oder andere einfache Möglichkeiten, um den Kunden auf ihre Site zu leiten. Auf der positiven Seite müssen Sie sich nicht selbst um Zahlungen/Beschwerden und Reisende kümmern. Was die Nachteile angeht ... Wenn Sie die Preise selbst vergleichen und dem Benutzer die kostengünstigste Option präsentieren möchten, müssen Sie sie auf einer tieferen Ebene integrieren. Dies bedeutet APIs und Web-Scraping.

Was Web Scraping angeht ... meide es. Es nervt. Ja wirklich. Tu es einfach nicht. Vertrau mir dieses mal. Zum Beispiel einige Dinge wie Lowcosters, 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 Produkte 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, dass sie die Websites von Lowcoster über das Internet durchsuchen und sie in Nice APIs einbinden. Wenn Sie es sich leisten können, können Sie Ihren Nutzern einen Kostenvergleich von Billigflügen anbieten, und das ist riesig.

Andererseits gibt es "normale" Carrier, die APIs anbieten. Es ist kein so großes Problem, zu Fluggesellschaften zu gelangen, da sie alle unter IATA ; Grundsätzlich kaufen Sie bei der IATA und die IATA verteilt das Geld an die Fluggesellschaften. Möglicherweise möchten Sie jedoch keine direkte Verbindung zum Netzbetreiber herstellen. Sie haben heutzutage Web-Services und SOAP, aber glauben Sie mir, wenn ich sage, dass es SOAP Protokolle gibt, die nur eine wahnsinnig dünne Hülle um eine Text-Eingabeaufforderung sind, über die Sie mit a interagieren können Mainframe mit einem 80er-Protokoll (denken Sie an eine Unix-Eingabeaufforderung, bei der die Abrechnung pro Befehl erfolgt; für eine Suche sind etwa 20 Befehle erforderlich). Aus diesem Grund möchten Sie sich wahrscheinlich mit jemandem in der Nahrungskette verbinden, der über eine bessere API verfügt.

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 hoch 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 Player, die Hotels zusammenfassen, und eine Tonne kleiner Anbieter mit vielen Aggregatoren, die nur einen Teil eines Spektrums abdecken. Zum Beispiel können Sie einen Leuchtturm mieten und es ist sogar nicht so teuer - aber Sie werden nicht in der Lage sein, die Preise verschiedener Leuchttürme an einem Ort zu vergleichen.

Wenn Sie sich für das Kayak-Geschäftsmodell 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 abrufen, zum Beispiel CSV-Dateien über FTP und ähnliches.

Das Leben ist zum Kotzen (Mini-Rant)

Und dann ist da noch Komplexität. Je mehr Wert Sie hinzufügen möchten, desto mehr Komplexität müssen Sie bewältigen. Können Sie nach Unterkünften suchen, in denen Haustiere gestattet sind? Für ein Hostel, das weniger als 5 km vom Stadtzentrum entfernt ist? Kombinieren Sie Flüge und können Sie sicherstellen, 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 noch einen Platz für das Cello verkaufen?

Möchten Sie die Preise vergleichen? Natürlich kostet das Zimmer EUR 30 pro Nacht. Sie können jedoch entweder ein Doppelzimmer für 30 und ein Einzelzimmer für 20 Personen erhalten, oder Sie erhalten ein Zustellbett im Doppelzimmer und erhalten 70% Ermäßigung für die dritte Person. Aber nur, wenn es sich um ein Kind unter 12 Jahren handelt. Unsere Zustellbetten sind nicht für Erwachsene. Und in den Suchergebnissen wird der Preis für ein Zustellbett nicht angezeigt - nur, wenn Sie den Endpreis berechnen.

Und lassen Sie mich nicht einmal mit dynamischer Verpackung anfangen. Möchten Sie eine Unterkunft + ein Mietauto verkaufen? Kein Problem; Integration mit zwei verschiedenen Anbietern, und los geht's ... Manuelles Aktualisieren der Liste der Standorte in der Stadt (vom Mietwagenanbieter), um sie mit den Hotels abzugleichen (vom Anbieter der Unterkunft, der Ihnen für jedes Hotel nur die Stadt angibt). Natürlich, vorausgesetzt, Sie haben bereits die Liste der Städte aus den beiden 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 leicht; Der Verkauf von Büchern und Kartoffeln ist dasselbe. Sie können sie sogar in derselben Schachtel versenden. Sie lassen sich leicht kombinieren und sind nicht aus vielen Teilen zusammengesetzt. :)

P.S. Verlinkung zu einem interessanten aktuellen Thread auf Hacker News mit einigen Insider-Infos zu Flügen . P.P.S. Neulich stolperte ich über einen großartigen, wenn auch ziemlich alten Blogpost über IATAs NDC-Protokoll mit einem Überblick über die Verbindung der Reisebranche und einer Geschichtsstunde, wie dies zustande kam .

144
Domchi

Sie verwenden ein Softwarepaket wie ITA Software , eines der Unternehmen, das Google gerade abholt.

9
mavrck

Nur drei Möglichkeiten, um Daten von Websites zu erhalten.

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

APIs - Diese sind nett, wenn sie gut konzipiert sind und über alle Informationen verfügen, die Sie benötigen. Dies ist jedoch nicht immer der Fall. Wenn die Sites kein Standard-API-Format verwenden, müssen Sie mehrere APIs unterstützen.

Web Scraping - Diese Methode wäre die unzuverlässigste und die teuerste in der Wartung. Wenn Sie nichts anderes übrig haben, können Sie dies tun. 

6
Jeff Busby

Travelport bietet ein Produkt namens "Universal API" an, das Verbindungen zu Flügen und Hotels und Autovermietungen herstellt und Paketangebote und all die verschiedenen Komplexitäten im Zusammenhang mit Steuern und Wechselkursen bewältigt:

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

Ich habe gerade damit angefangen und es scheint soweit gut zu sein. Die Abfragen sind etwas langsam, aber das gilt auch für jede Abfrage auf der Website jedes OTA (Online Travel Agent).

3
Tim Cooper

Dieser Artikel besagt, dass Kayak gebeten wurde, eine bestimmte Seite der Fluggesellschaften nicht mehr zu verschrotten. Das lässt mich glauben, dass sie wahrscheinlich auf Websites scrapen, mit denen sie keine Beziehung haben (und einen Daten-Feed, der mit dieser Beziehung verbunden ist).

3
Jake Wilson

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

Es gibt einen von Wego und einen von Skyscanner . Beide scheinen ein gutes Datenangebot und eine große Datenbreite verschiedener Fluggesellschaften sowie eine gute Dokumentation zu haben.

Wego zahlt jedes Mal, wenn ein Nutzer von Ihrer App auf eine Buchungswebsite klickt, und Skyscanner zahlt Affiliates 50% des Umsatzes aus.

2
Jonathon Blok

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 füttert. Dieses Unternehmen schließt Verträge mit vielen Hotelmarken, einzelnen Hotels und anderen Inhaltsanbietern ab. Wir sammeln diese Informationen und geben sie an die verschiedenen Kanäle weiter. Sie aggregieren dann erneut in ihrem System. Die Large GDS-Systeme sind auch Inhaltsanbieter. Die Aggregation erfolgt durch viele Methoden ... Matching-Algorithmen (intern) und Schlüssel. Als Aggregationsdienst müssen wir auf Client-Ebene kommunizieren.

Hoffe das hilft! Prost!

0
Krdls