W jaki sposób witryna taka jak kayak.com agreguje zawartość? [Zamknięte]

83

Pozdrowienia, bawiłem się pomysłem na nowy projekt i zastanawiałem się, czy ktoś ma pojęcie, w jaki sposób usługa taka jak Kayak.com jest w stanie tak szybko i dokładnie agregować dane z tak wielu źródeł. Mówiąc dokładniej, czy uważasz, że Kayak.com wchodzi w interakcje z interfejsami API, czy też przeszukuje / przegląda witryny linii lotniczych i hoteli w celu spełnienia żądań użytkowników? Wiem, że nie ma jednej właściwej odpowiedzi na takie rzeczy, ale jestem ciekawy, co inni myślą, że byłby to dobry sposób na zrobienie tego. Jeśli to pomoże, udawaj, że jutro zamierzasz założyć kayak.com ... skąd pochodzą Twoje dane?

Jeff
źródło

Odpowiedzi:

147

Pracuję w branży turystycznej jako architekt oprogramowania / kierownik projektu przy dokładnie takim projekcie, jaki opisujesz - w naszym regionie współpracujemy bezpośrednio z dostawcami, ale w przypadku wyjazdów łączymy się z kilkoma agregatorami.

Odpowiadając na twoje pytanie ... niektóre dane, które posiadasz, niektóre zdobywasz na różne sposoby, a niektóre musisz torturować i przekręcać, aż się przyzna.

Jaki jest twój kąt?

Pytania, które musisz sobie zadać, to ... Chcesz sprzedawać reklamy, takie jak Kajak, czy wolisz obniżać ceny jak Expedia? Interesujesz się wyszukiwaniem lub sprzedażą usług turystycznych? Czy celujesz w niszę (na przykład tylko podróże lotnicze) czy wszystko (zakwaterowanie, linie lotnicze, wynajem samochodów, dodatkowe usługi, takie jak transport / zwiedzanie / konferencje itp.)? Czy kierujesz reklamy na region (Stany Zjednoczone lub część Stanów Zjednoczonych) czy na cały świat? Jak głęboko się posuwasz - czy po prostu wyświetlasz kilka witryn na jednym ekranie, czy też łączysz razem różne usługi i pakujesz je dynamicznie?

Pobieranie danych

Jeśli wybierasz model biznesowy Kayak, z technicznego punktu widzenia nie potrzebujesz pozwolenia witryny ... ale wiele witryn ma programy stowarzyszone z ramkami IFrame lub innymi prostymi sposobami kierowania klienta do ich witryny. Z drugiej strony nie musisz zajmować się płatnościami / reklamacjami i samymi podróżnymi. Jeśli chodzi o wady ... jeśli chcesz samodzielnie porównać ceny i przedstawić użytkownikowi najtańszą opcję, będziesz musiał zintegrować się na głębszym poziomie, a to oznacza interfejsy API i skrobanie sieci.

Jeśli chodzi o skrobanie sieci ... unikaj tego. To jest do bani. Naprawdę. Po prostu tego nie rób. Zaufaj mi ten raz. Na przykład niektóre rzeczy, takie jak lowcosters, których nie można uzyskać bez skrobania sieci. Tanie linie lotnicze żyją z usług dodanych. Jeśli użytkownik nie widzi swojej witryny, nie sprzedaje dodatkowych rzeczy i nic nie zarabia. Dlatego nie mają partnerów, nie oferują interfejsów API i prawie nieustannie zmieniają układ swojej witryny. Są jednak firmy, które zarabiają na życie, przeglądając strony internetowe lowcoster i pakując je w ładne interfejsy API. Jeśli możesz sobie na to pozwolić, możesz dać użytkownikom porównanie kosztów tanich lotów, a to jest ogromne.

Z drugiej strony istnieją „normalni” przewoźnicy, którzy oferują API. Nie jest to duży problem, aby dostać się do linii lotniczych, ponieważ wszystkie są zjednoczone w ramach IATA ; zasadniczo kupujesz od IATA, a IATA rozprowadza pieniądze wśród przewoźników. Jednak prawdopodobnie nie chcesz łączyć się bezpośrednio z siecią operatora. W dzisiejszych czasach mają usługi sieciowe i SOAP, ale wierz mi, kiedy powiem, że istnieją protokoły SOAP, które są po prostu szalenie cienkimi opakowaniami wokół monitu tekstowego, przez który można wchodzić w interakcję z komputerem mainframe z protokołem w stylu lat 80-tych (pomyśl o Uniksie pytaj, gdzie naliczana jest opłata za polecenie; a wykonanie jednego wyszukiwania zajmuje około 20 poleceń). Dlatego prawdopodobnie chcesz połączyć się z kimś znajdującym się nieco dalej w łańcuchu pokarmowym, z lepszym API.

Linie lotnicze znajdują się zatem na obu krańcach krzywej Gaussa; z jednej strony są indywidualni dostawcy, az drugiej wysoce scentralizowane systemy, w których wdrażasz jeden interfejs API i możesz latać w dowolne miejsce na świecie. Zakwaterowanie i pozostałe produkty turystyczne znajdują się pomiędzy. Jest kilku dużych graczy, którzy agregują hotele i mnóstwo małych dostawców z wieloma agregatorami, które obejmują tylko część spektrum. Na przykład możesz wynająć latarnię morską i nawet nie jest ona droga - ale nie będziesz w stanie porównać cen różnych latarni w jednym miejscu.

Jeśli interesujesz się modelem biznesowym Kayak, prawdopodobnie skończysz na skrobaniu stron internetowych. Jeśli chcesz integrować różnych dostawców, często będziesz pracować z interfejsami API, z których niektóre są całkiem dobre, a większość z nich można tolerować. Nie pracowałem z RSS, ale nie ma dużej różnicy między RSS a skrobaniem sieci. Jest też czwarta opcja, o której nie ma mowy w odpowiedzi Jeffa ... ta, w której co noc pobierasz dane, na przykład pliki .CSV przez FTP i tym podobne.

Życie jest do bani (mini-rant)

A potem jest złożoność. Im większą wartość chcesz dodać, tym większą złożoność będziesz musiał sobie poradzić. Czy możesz szukać zakwaterowania, w którym akceptowane są zwierzęta? Dla hostelu położonego mniej niż 5 km od centrum miasta? Czy łączysz loty i czy jesteś w stanie zagwarantować, że podróżny będzie miał wystarczająco dużo czasu, aby dostać się z jednego lotniska na drugie ... czy możesz sprzedać transport z wyprzedzeniem? Słynny wiolonczelista nie chce rozstać się ze swoją cenną XVIII-wieczną wiolonczelą; czy możesz sprzedać mu inne miejsce na wiolonczelę (tak, nie wymyślając tego)?

Chcesz porównać ceny? Jasne, pokój kosztuje 30 EUR za noc. Ale możesz dostać jedno podwójne za 30 i jedno pojedyncze za 20, lub możesz dostać jedno dodatkowe łóżko w podwójnym i otrzymać 70% zniżki dla trzeciej osoby. Ale tylko jeśli jest to dziecko w wieku poniżej 12 lat; nasze dodatkowe łóżka nie są przeznaczone dla osób dorosłych. A ceny za dodatkowe łóżko nie znajdziesz w wynikach wyszukiwania - tylko wtedy, gdy obliczysz ostateczną cenę.

I nawet nie zaczynaj od dynamicznego pakowania. Chcesz sprzedać zakwaterowanie + wynajem samochodu? Nie ma problemu; zintegruj się z dwoma różnymi dostawcami i gotowe ... ręcznie aktualizuj listę lokalizacji w mieście (od wypożyczalni samochodów) do hoteli (od dostawcy, który podaje tylko miasto dla każdego hotelu). Oczywiście pod warunkiem, że już dopasowałeś listę miast z tych dwóch, ponieważ nie ma międzynarodowego standardu kodów miast.

W przeciwieństwie do wielu innych branż, które mają wiele produktów, branża turystyczna ma wiele bardzo złożonych produktów. Amazon ma to łatwe; sprzedaż książek i sprzedaż ziemniaków to to samo; możesz nawet wysłać je w tym samym pudełku. Łatwo się łączą i nie składają się z wielu części. :)

PS Odnośnik do ciekawego, niedawnego wątku w Hacker News, zawierający informacje poufne dotyczące lotów . PPS Niedawno natknąłem się na świetny, choć raczej stary post na blogu na temat protokołu NDC IATA, zawierający przegląd powiązań branży turystycznej i lekcję historii, jak to się stało .

Domchi
źródło
Domchi, czy to się bardzo zmieniło w tym roku? Czy są teraz dostępne inne interfejsy API?
Rizwan Kassim
Nie, nie dużo; rynek jest rozdrobniony i jest mało prawdopodobne, aby to się wkrótce zmieniło, jeśli w ogóle. Godnym uwagi wydarzeniem jest wejście Google na rynek lotów (za pośrednictwem oprogramowania ITA, patrz odpowiedź mavrcks); mają zasoby, aby skonsolidować rynek i oferować interfejsy API, ale wątpię, aby to właśnie zamierzali / są w stanie zrobić. W świecie startupów najciekawszym kandydatem jest prawdopodobnie airbnb.com, ale jak dotąd nie oferują one API. Interfejsy API w tej domenie nie są trudne do znalezienia, ale rzadko są bezpłatne. Sprawdź programmableweb.com/apitag/booking i programmableweb.com/apitag/travel, aby uzyskać dobrą listę interfejsów API.
Domchi
Czy twierdzisz, że Kayak.com przeszukuje strony linii lotniczych pod kątem treści i nie musi za to płacić? Co pozwala im na to ich model biznesowy? Wydaje się, że warunki korzystania z głównych linii lotniczych mówią, że nie można pobrać treści / danych z ich witryn w celu wykorzystania ich na innej stronie.
Ryan Bales
@Ryan Nie mogę powiedzieć, czym zajmuje się Kayak, ale wiem, że większość tanich linii lotniczych nie oferuje żadnych interfejsów API, aby zwiększać sprzedaż wyłącznie za pośrednictwem swoich witryn internetowych i jak najwięcej dosprzedawać. Z kolei agregatory usuwają swoje strony internetowe i symulują interakcję użytkownika. W odpowiedzi linie lotnicze często zmieniają strukturę stron internetowych i trwa gra w kotka i myszkę. Wyobrażam sobie, że przewoźnikom trudno jest udowodnić, że tak się dzieje, ale oni o tym wiedzą i prawdopodobnie nie chcą w ogóle temu zapobiegać, ponieważ chcą ruchu, którego inaczej by nie uzyskali.
Domchi
@Domchi. Jak to, co opisujesz, jest legalne? Z tego, co przeczytałem, skrobanie stron internetowych zostało uznane za nielegalne w różnych sprawach sądowych dotyczących danych linii lotniczych, aukcji w serwisie eBay i innych (szczególnie w przypadku komercyjnego wykorzystania tych danych).
Justin Skiles
9

Korzystają z pakietu oprogramowania, takiego jak ITA Software , który jest jedną z firm, które Google jest w trakcie wybierania.

mavrck
źródło
1
w międzyczasie
przewody
7

Znam tylko 3 sposoby uzyskiwania danych ze stron internetowych.

Kanały RSS - w mojej firmie często korzystamy z kanałów RSS, aby zintegrować istniejące dane witryny z naszymi aplikacjami. Jest szybki i większość witryn ma już dostępny kanał RSS. Problem z tym nie polega na tym, że nie wszystkie witryny poprawnie implementują standard RSS, więc jeśli pobierasz dane z wielu źródeł RSS w wielu witrynach, upewnij się, że piszesz kod, aby móc łatwo dodawać wyjątki i filtry.

Interfejsy API - są fajne, jeśli są dobrze zaprojektowane i zawierają wszystkie potrzebne informacje, jednak nie zawsze tak jest, a jeśli witryny nie używają standardowego formatu API, będziesz musiał obsługiwać wiele interfejsów API.

Skrobanie sieci - ta metoda byłaby najbardziej zawodna i najdroższa w utrzymaniu. Ale jeśli nie masz nic innego, możesz to zrobić.

Jeff Busby
źródło
4

Travelport oferuje produkt o nazwie „Universal API”, który łączy się z lotami, hotelami i wypożyczalniami samochodów oraz radzi sobie z ofertami pakietowymi i wszystkimi różnymi problemami związanymi z podatkami i kursami wymiany:

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

Właśnie zacząłem go używać i na razie wydaje się w porządku. Zapytania są trochę powolne, ale tak samo jest z każdym zapytaniem w każdej witrynie OTA (internetowego biura podróży).

Tim Cooper
źródło
Jaki jest koszt korzystania z Universal API?
Amit
1
Zapomniałem. Wydaje mi się, że jednorazowa opłata w małych tysiącach plus roczna opłata w małych tysiącach.
Tim Cooper
Czy jest dostępny uniwersalny interfejs API dla telefonów komórkowych?
iSrinivasan
uAPI wykorzystuje protokół SOAP. Nie ma ograniczeń co do zakresu adresów IP, ale nie zintegrowałbym danych uwierzytelniających API z publicznie dostępnymi aplikacjami mobilnymi. Zbuduj własne oprogramowanie pośredniczące, aby chronić poświadczenia. support.travelport.com/webhelp/uapi/uapi.htm
gavenkoa
3

Ten artykuł mówi, że Kayak został poproszony o zaprzestanie złomowania określonej strony linii lotniczych. To prowadzi mnie do przekonania, że ​​prawdopodobnie dokonują skrobania w witrynach, z którymi nie mają związku (i źródła danych, które pochodzą z tego związku).

Jake Wilson
źródło
2

Niedawno znalazłem dwa dobre interfejsy API w witrynach porównujących loty

Jest jeden od Wego i jeden od Skyscanner . Obydwa wydają się mieć dobry zakres i szeroki zakres danych z wielu linii lotniczych, a także dobrą dokumentację.

Wego płaci za każdym razem, gdy użytkownik przejdzie z Twojej aplikacji na stronę rezerwacyjną, a Skyscanner płaci 50% „przychodów” (zakładam, że oznacza to prowizję, jaką otrzymują od linii lotniczych)

Jonathon Blok
źródło
4
FYI Wego pobiera również 1000 USD rocznie za przywilej korzystania z ich API.
Sk446
Poprawny. Poza tym, dalej do mojego postu (o czym wiem teraz trochę więcej), Skyscanner płaci za kliknięcie wyjściowe w taki sam sposób, jak Wego.
Jonathon Blok
2
Witaj, tutaj zespół Skyscanner API. Hotele są w budowie. Odwiedź stronę business.skyscanner.net, jeśli chcesz porozmawiać o korzystaniu z któregokolwiek z naszych interfejsów API (loty, wynajem samochodów, hotele).
Skyscanner
1
Właśnie sprawdziłem SkyScanner. Nowi twórcy są dla nich bezwartościowi. Nie możesz używać ich interfejsu Flight API, jeśli Twoja witryna nie generuje co najmniej 200 000 niepowtarzalnych wizyt miesięcznie! Żałosne!
Hajjat
1
Minęły 4 lata, a @Skyscanner nadal nie zapewnia hotelowego API.
nad
1

To jest stary post, ale pomyślałem, że po prostu dodam. Jestem architektem danych i pracuję dla firmy, która dostarcza treści do tych witryn turystycznych. Ta firma zawiera umowy z wieloma markami hotelowymi, indywidualnymi hotelami i innymi dostawcami treści. Gromadzimy te informacje, a następnie przekazujemy je do różnych kanałów. Następnie ponownie gromadzą się w swoim systemie. Duże systemy GDS są również dostawcami treści. Agregacja jest wykonywana wieloma metodami ... algorytmami dopasowującymi (wewnętrznymi) i kluczami. Będąc usługą agregacji, musimy komunikować się na poziomie klienta.

Mam nadzieję że to pomoże! Twoje zdrowie!

Krdls
źródło