Как сайт, подобный kayak.com, собирает контент?

76

Привет, Я занимался идеей нового проекта и задавался вопросом, знает ли кто-нибудь, как такой сервис, как Kayak.com, способен быстро и точно собирать данные из стольких источников. В частности, как вы думаете, Kayak.com взаимодействует с API, или они сканируют/очищают веб-сайты авиакомпаний и гостиниц, чтобы выполнять запросы пользователей? Я знаю, что нет такого правильного ответа для такого рода вещей, но мне любопытно узнать, что, по мнению других, было бы хорошим способом справиться с этим. Если это поможет, притворись, что ты собираешься создать kayak.com завтра... откуда берутся ваши данные?

Теги:
architecture
aggregate
screen-scraping

7 ответов

132
Лучший ответ

Я работаю в индустрии путешествий как архитектор/проект программного обеспечения на точно таком же проекте, который вы описываете, - в нашем регионе мы напрямую работаем с поставщиками, но для исходящих мы подключаемся к нескольким агрегаторам.

Чтобы ответить на ваш вопрос... некоторые данные у вас есть, некоторые вы получаете по-разному, а некоторые вы должны пытать и крутить, пока не признается.

Какой у вас угол?

Вопросы, которые вы должны задать,... Хотите продать рекламу, такую ​​как Kayak, или вы берете сокращение, подобное Expedia? Вы ищете или продаете туристические услуги? Вы ориентируетесь на нишу (например, только на воздушные перевозки) или все (размещение, авиакомпании, аренда автомобилей, дополнительные услуги, такие как транспорт/экскурсии/конференции и т.д.)? Вы ориентируетесь на регион (США или часть США) или мир? Насколько глубоко вы идете - вы просто показываете несколько сайтов на одном экране или объединяете различные сервисы и динамически упаковываете их?

Получение данных

Если вы собираетесь с бизнес-моделью Kayak, вам технически не требуется разрешение на сайт... но на многих сайтах есть партнерские программы с IFrames или другие простые способы направить клиента на их сайт. С положительной стороны вам не придется иметь дело с платежами/жалобами и самими путешественниками. Что касается минусов... если вы хотите сравнить цены сами и представить самый дешевый вариант для пользователя, вам придется интегрироваться на более глубоком уровне, а это означает API и веб-соскабливание.

Что касается веб-соскабливания... избегайте этого. Это отстой. В самом деле. Только не делай этого. Поверь мне в этом. Например, некоторые вещи, такие как lowcosters, которые вы не можете получить без веб-соскабливания. Бюджетные авиакомпании живут от дополнительных услуг. Если пользователь не видит свой сайт, они не продают лишние вещи, и они ничего не зарабатывают. Поэтому у них нет веток, они не предлагают API, и они меняют свой макет сайта почти постоянно. Тем не менее, есть компании, которые зарабатывают на жизнь веб-скремблированием низкоуровневых сайтов и завершают их в приятные API. Если вы можете себе это позволить, вы можете дать своим пользователям сравнение затрат по недорогим рейсам и огромным.

С другой стороны, существуют "нормальные" носители, которые предлагают API. Это не такая уж большая проблема, чтобы попасть в авиакомпании, поскольку все они объединены под IATA; в основном, вы покупаете у IATA, а IATA распределяет деньги на перевозчиков. Однако вы, вероятно, не хотите напрямую подключаться к сети операторов связи. В наши дни у них есть веб-службы и SOAP, но поверьте мне, когда я говорю, что есть протоколы SOAP, которые являются просто безумно тонкой оболочкой вокруг текстового приглашения, через которое вы можете взаимодействовать с мэйнфреймом с протоколом 80-х (подумайте об Unix подскажите, где вы рассчитываете за команду, и требуется около 20 команд для одного поиска). Вот почему вы, вероятно, хотите подключиться к кому-то еще немного по цепочке продуктов, с лучшим API.

Авиакомпании, таким образом, находятся на обоих крайностях гауссовой кривой; с одной стороны - отдельные поставщики, а с другой - централизованные системы, в которых вы реализуете один API, и вы можете летать в любой точке мира. Проживание и остальная часть туристических продуктов находятся между ними. Есть несколько крупных игроков, которые объединяют отели и тонну мелких поставщиков с множеством агрегаторов, которые покрывают только часть спектра. Например, вы можете арендовать маяк, и это даже не так дорого, но вы не сможете сравнить цены на различные маяки в одном месте.

Если вы работаете в бизнес-модели Kayak, вы, вероятно, в конечном итоге соскоблите веб-сайты. Если вы хотите интегрировать разных поставщиков, вы часто будете работать с API-интерфейсами, некоторые из которых довольно хороши, и большинство из них приемлемы. Я не работал с RSS, но не так много различий между RSS и веб-соскабливанием. Существует также четвертый вариант, не упомянутый в ответе Джеффа... тот, где вы получаете свои данные в ночное время, например. CSV файлы через FTP и т.д.

Жизнь отстой (мини-напыщенность)

А потом сложность. Чем больше значений вы хотите добавить, тем больше сложности вам придется обрабатывать. Можете ли вы найти жилье, которое разрешает домашним животным? Для общежития, расположенного менее чем в 5 км от центра города? Собираетесь ли вы полеты, и можете ли вы гарантировать, что у путешественника будет достаточно времени, чтобы добраться из одного аэропорта в другой... Вы можете продать транспорт заранее? Известный виолончелист не хочет расставаться со своей драгоценной виолончелью 18-го века; можете ли вы продать ему другое место для виолончели (да, не делая это)?

Хотите сравнить цены? Конечно, номер составляет 30 евро за ночь. Но вы можете получить один двойной за 30 и один сингл на 20, или вы можете получить одну дополнительную кровать в два раза и получить 70% скидка для третьего лица. Но только если это ребенок в возрасте до 12 лет; наши дополнительные кровати не предназначены для взрослых. И вы не получите цену за дополнительную кровать в результатах поиска - только при вычислении окончательной цены.

И даже не заставляйте меня работать с динамической упаковкой. Хотите продать жилье + арендовать автомобиль? Нет проблем; интегрироваться с двумя разными провайдерами, а вы уходите... вручную обновляя список мест в городе (от арендодателя автомобиля) в соответствии с отелями (от провайдера, который дает вам только город для каждого отеля). Разумеется, при условии, что вы уже сопоставили список городов с двумя, так как нет международного стандарта для городских кодов.

В отличие от многих других отраслей, у которых много продуктов, в индустрии туризма много очень сложных продуктов. У Amazon это легко; продавая книги и продавая картофель, это то же самое; вы даже можете отправить их в одной коробке. Они легко объединяются и не собираются из многих частей.:)

P.S. Ссылка на интересный недавний поток в Hacker News с некоторыми инсайдерской информацией о рейсах. P.P.S. Недавно наткнулся на большой, хотя и довольно старый blogpost на протокол IATA NDC с обзором того, как индустрия путешествий подключена, и урок истории о том, как это стало.

  • 4
    Домчи, это действительно полезное понимание. Приятно знать, что другие также сталкиваются с аналогичными проблемами.
  • 0
    Domchi, это сильно изменилось в этом году? Есть ли другие API, доступные сейчас?
Показать ещё 13 комментариев
9

Они используют программный пакет, например ITA Software, который является одной из компаний, которые Google находится в процессе сбора.

6

Только 3 способа, которыми я знаю, получать данные с веб-сайтов.

RSS-каналы. Мы часто используем rss-каналы в моей компании для интеграции существующих данных сайта с нашими приложениями. Это быстро, и большинство сайтов уже имеют доступ к RSS-каналу. Проблема в том, что не все сайты правильно внедряют стандарт RSS, поэтому, если вы извлекаете данные из многих каналов RSS на многих сайтах, тогда убедитесь, что вы пишете свой код, чтобы вы могли легко добавлять исключения и фильтры.

API - это хорошо, если они хорошо разработаны и имеют всю необходимую информацию, однако это не всегда так, плюс, если сайты не используют стандартный формат api, вам придется поддерживать несколько API.

Веб-скребок - этот метод будет самым ненадежным, а также самым дорогим в обслуживании. Но если вы не останетесь ни с чем другим, это можно сделать.

  • 0
    Спасибо, Джефф. Я боюсь решения по поиску в Интернете, но я привык к RSS-каналам или методам API. Еще раз спасибо за вклад.
3

В этой статье говорится, что Каяку было предложено прекратить отмену определенной страницы авиакомпаний. Это заставляет меня думать, что они, вероятно, делают соскабливание на сайтах, с которыми у них нет отношения (и канал данных, который поставляется с этими отношениями).

2

Travelport предлагает продукт под названием "Universal API", который соединяется с рейсами и отелями и компаниями по прокату автомобилей, а также справляется с пакетами сделок и всеми сложностями, связанными с налогами и обменными курсами:

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

Я только начал использовать его, и пока это кажется прекрасным. Запросы немного медленные, но тогда каждый запрос на каждом сайте OTA (онлайн-турагент).

  • 0
    Сколько стоит использование Универсального API?
  • 0
    Я забыт. Я думаю, что единовременная плата в несколько тысяч плюс ежегодная плата в тысячи.
Показать ещё 1 комментарий
1

Есть два хороших API, которые я недавно нашел на сайтах сравнения рейсов

Там один из Wego, и один из Skyscanner. Оба, похоже, имеют большой диапазон и широту данных от ряда авиакомпаний и хорошую документацию.

Wego платит каждый раз, когда пользователь нажимает на ваше приложение на веб-сайте бронирования, а Skyscanner выплачивает членские взносы в размере 50% от выручки (я предполагаю, что это означает комиссию, которую они делают с авиакомпаниями)

  • 2
    FYI Wego также взимает 1000 долларов США в год за привилегию использования их API.
  • 0
    Правильный. Кроме того, в дополнение к моему посту (как я теперь знаю немного больше), Skyscanner платит за клик на выходе точно так же, как это делает Wego.
Показать ещё 7 комментариев
-2

Это старый пост, но я думал, что просто добавлю. Я архитектор данных, который работает в компании, которая кормит эти туристические сайты контентом. Эта компания заключает контракты со многими гостиничными брендами, отдельными отелями и другими контент-провайдерами. Мы собираем эту информацию, затем передаем ее на разные каналы. Затем они снова объединяются в свою систему. Большие системы GDS также являются поставщиками контента. Агрегация выполняется многими методами... алгоритмами сопоставления (внутри компании) и ключами. Являясь услугой агрегирования, нам нужно общаться на уровне клиента.

Надеюсь, это поможет! ура!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню