Как такие сайты, как kayak.com, собирают контент? [закрыто]

83

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

Джефф
источник

Ответы:

147

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

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

Какой у тебя угол?

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

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

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

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

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

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

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

Жизнь отстой (мини-разглагольствование)

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

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

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

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

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

Домчи
источник
Домчи, это сильно изменилось в этом году? Доступны ли сейчас другие API?
Ризван Кассим
Нет, не много; рынок фрагментирован, и вряд ли когда-либо это изменится. Заметным событием является выход Google на рынок полетов (через ITA Software, см. Ответ mavrcks); у них есть ресурсы для консолидации рынка и предложения API, но я сомневаюсь, что они намереваются / могут это сделать. В мире стартапов наиболее интересным претендентом, вероятно, является airbnb.com, но пока они не предлагают API. API в этой области найти несложно, но они редко бывают бесплатными. Проверьте programmableweb.com/apitag/booking и programmableweb.com/apitag/travel для получения хорошего списка API.
Domchi 01
Вы хотите сказать, что Kayak.com очищает сайты авиакомпаний на предмет содержания и не должен за это платить? Что в их бизнес-модели позволяет им это делать? Условия использования основных авиакомпаний, похоже, говорят о том, что нельзя очищать контент / данные с их сайта для использования на другом сайте.
Ryan Bales
@Ryan Я не могу сказать, что делает Kayak, но я знаю, что большинство бюджетных авиакомпаний не предлагают никаких API-интерфейсов, чтобы стимулировать продажи исключительно через свои веб-сайты и продавать как можно больше. В свою очередь, агрегаторы сбрасывают свои сайты и имитируют взаимодействие с пользователем. В ответ авиакомпании часто меняют структуру сайта, и игра в кошки-мышки продолжается. Я могу предположить, что операторам связи довольно сложно доказать, что это происходит, но они знают об этом и, вероятно, не хотят полностью это предотвращать, поскольку им нужен трафик, который они иначе не получили бы.
Domchi
@Domchi, как то, что вы описываете, законно? Из того, что я читал, сбор данных в Интернете считался незаконным в различных судебных процессах, касающихся данных авиакомпаний, списков ebay и других (особенно для коммерческого использования указанных данных).
Джастин Скилс,
9

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

Mavrck
источник
1
тем временем, см. developers.google.com/qpx-express/v1/trips/search для API
провода
7

Я знаю только 3 способа получить данные с веб-сайтов.

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

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

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

Джефф Басби
источник
4

Travelport предлагает продукт под названием «Универсальный API», который подключается к рейсам, отелям и компаниям по аренде автомобилей и справляется с пакетными предложениями и всеми различными сложностями, связанными с налогами и обменными курсами:

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

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

Тим Купер
источник
Сколько стоит использование универсального API?
Амит
1
Я забыл. Думаю, единовременный взнос в несколько тысяч плюс ежегодный взнос в несколько тысяч.
Тим Купер
Доступен ли универсальный API для мобильных устройств?
iSrinivasan27
uAPI использует протокол SOAP. Нет ограничений на диапазон IP-адресов, но я бы не стал интегрировать учетные данные API в общедоступные мобильные приложения. Создайте собственное промежуточное ПО для защиты учетных данных. support.travelport.com/webhelp/uapi/uapi.htm
gavenkoa
3

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

Джейк Уилсон
источник
2

Я недавно нашел два хороших API на сайтах сравнения рейсов.

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

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

Джонатон Блок
источник
4
К вашему сведению, Wego также взимает 1000 долларов США в год за привилегию использования их API.
Sk446 03
Верный. Кроме того, в дополнение к моему сообщению (теперь я знаю немного больше), Skyscanner платит за клик при выходе так же, как и Wego.
Jonathon Blok
2
Здравствуйте, команда API Skyscanner здесь. Отели в разработке. Посетите сайт business.skyscanner.net, если вы хотите обсудить использование любого из наших API (авиабилеты, аренда автомобилей, отели).
Skyscanner,
1
Только что проверил SkyScanner. Новые разработчики для них ничего не стоят. Вы не можете использовать их API полетов, если ваш сайт не генерирует не менее 200 000 уникальных посещений в месяц! Жалкий!
Хаджат
1
Прошло 4 года, а @Skyscanner до сих пор не предоставляет API для отелей.
над
1

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

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

Krdls
источник