api - reservas - ¿Cómo un sitio como kayak.com agrega contenido?
kayak vuelos y hotel (7)
Saludos, he estado jugando con una idea para un nuevo proyecto y me preguntaba si alguien tiene alguna idea sobre cómo un servicio como Kayak.com puede agregar datos de tantas fuentes de manera tan rápida y precisa. Más específicamente, ¿cree que Kayak.com está interactuando con las API o están rastreando / raspando los sitios web de las aerolíneas y los hoteles para satisfacer las solicitudes de los usuarios? Sé que no hay una respuesta correcta para este tipo de cosas, pero tengo curiosidad por saber lo que otros piensan que sería una buena manera de hacerlo. Si es útil, imagine que va a crear kayak.com mañana ... ¿de dónde provienen sus datos?
Esta es una publicación anterior, pero pensé que solo agregaría. Soy un arquitecto de datos que trabaja para una empresa que alimenta estos sitios de viajes con contenido. Esta empresa celebra contratos con muchas marcas de hoteles, hoteles individuales y otros proveedores de contenido. Agregamos esta información y luego la pasamos a los diferentes canales. Luego se vuelven a agregar a su sistema. Los sistemas Large GDS también son proveedores de contenido. La agregación se realiza por muchos métodos ... haciendo coincidir los algoritmos (internos) y las claves. Al ser un servicio de agregación, necesitamos comunicarnos a nivel del cliente.
¡Espero que esto ayude! ¡aclamaciones!
Estoy trabajando en la industria de viajes como arquitecto de software / líder de proyecto en el tipo exacto de proyecto que describes; en nuestra región trabajamos directamente con proveedores, pero para los salientes nos conectamos con varios agregadores.
Para responder a su pregunta ... algunos datos que tiene, algunos los obtiene de varias maneras, y otros los tiene que torturar y retorcer hasta que confiese.
¿Cuál es tu ángulo?
Las preguntas que debe formular son ... ¿Quiere vender publicidad como Kayak o tomar un recorte como Expedia? ¿Estás buscando o vendiendo servicios de viaje? ¿Tiene como objetivo un nicho (por ejemplo, solo viajes aéreos) o de todo (alojamiento, líneas aéreas, alquiler de automóviles, servicios adicionales como transporte / turismo / conferencias, etc.)? ¿Dirigirse a la región (EE. UU. O parte de EE. UU.) O al mundo? ¿Qué tan profundo vas? ¿Acabas de mostrar varios sitios en una sola pantalla, o agrupas diferentes servicios y los empaqueta dinámicamente?
Obteniendo los datos
Si va con el modelo comercial de Kayak, técnicamente no necesita el permiso del sitio ... pero muchos sitios tienen programas de afiliación con IFrames u otras formas simples de dirigir al cliente a su sitio. En el lado positivo, no tiene que lidiar con pagos / quejas y los propios viajeros. En cuanto a las desventajas ... si quiere comparar precios usted mismo y presentar la opción más barata para el usuario, deberá integrar en un nivel más profundo, y eso significa API y raspado web.
En cuanto a raspado web ... evitarlo. Apesta. De Verdad. Simplemente no lo hagas. Confía en mí esta vez. Por ejemplo, algunas cosas como lowcosters no pueden obtenerse sin raspar web. Las aerolíneas de bajo costo viven de los servicios de valor agregado. Si el usuario no ve su sitio web, no vende material adicional y no gana nada. Por lo tanto, no tienen afiliados, no ofrecen API, y cambian el diseño de su sitio casi constantemente. Sin embargo, hay empresas que se ganan la vida raspando los sitios de lowcost y envolviéndolos en buenas API. Si puede pagarlos, puede darles a sus usuarios una comparación de costos de vuelos de bajo costo y eso es enorme.
Por otro lado, hay operadores "normales" que ofrecen API. No es tan problemático llegar a las aerolíneas ya que están unidas bajo IATA ; básicamente, usted compra de IATA, e IATA distribuye el dinero a los transportistas. Sin embargo, es probable que no desee conectarse directamente a la red del operador. Tienen servicios web y SOAP en estos días, pero créanme cuando digo que hay protocolos SOAP que son simplemente un envoltorio delgadísimo alrededor de un mensaje de texto a través del cual se puede interactuar con un mainframe con un protocolo estilo 80es (piense en un Unix preguntar dónde se le factura por comando, y se necesitan alrededor de 20 comandos para hacer una búsqueda). Es por eso que probablemente quiera conectarse con alguien un poco más en la cadena alimenticia, con una mejor API.
Las líneas aéreas están así en ambos extremos de la curva gaussiana; por un lado, están los proveedores individuales y, por otro, los sistemas altamente centralizados en los que implementa una API y puede volar a cualquier parte del mundo. El alojamiento y el resto de los productos de viaje están en el medio. Hay varios grandes jugadores que agregan hoteles y una tonelada de pequeños proveedores con muchos agregadores que cubren solo una parte del espectro. Por ejemplo, puede alquilar un faro y ni siquiera es tan caro, pero no podrá comparar los precios de diferentes faros en un solo lugar.
Si te gusta el modelo comercial de Kayak, probablemente termines raspando sitios web. Si le interesa integrar diferentes proveedores, a menudo trabajará con API, algunas de las cuales son bastante buenas, y la mayoría de ellas son tolerables. No he trabajado con RSS, pero no hay mucha diferencia entre RSS y web scraping. También hay una cuarta opción que no se menciona en la respuesta de Jeff ... en la que obtienes tus datos todas las noches, por ejemplo, archivos .CSV a través de FTP y similares.
La vida apesta (mini-rant)
Y luego está la complejidad. Cuanto más valor desee agregar, mayor será la complejidad que tendrá que manejar. ¿Puedes buscar alojamientos que permitan mascotas? Para un albergue que se encuentra a menos de 5 km del centro de la ciudad? ¿Está combinando vuelos y puede garantizar que el viajero tenga tiempo suficiente para trasladarse de un aeropuerto a otro? ¿Puede vender el transporte con antelación? Un violonchelista famoso no quiere separarse de su precioso violonchelo del siglo XVIII; ¿Puedes venderle otro asiento para el violonchelo (sí, sin hacer esta)?
¿Quieres comparar precios? Claro, la habitación cuesta EUR 30 por noche. Pero puede obtener uno doble para 30 y uno solo para 20, o puede obtener una cama extra en un doble y obtener un 70% de descuento para una tercera persona. Pero solo si es un niño menor de 12 años de edad; nuestras camas supletorias no son para adultos. Y no obtiene el precio de la cama extra en los resultados de búsqueda, solo cuando calcula el precio final.
Y ni siquiera me inicie en un empaque dinámico. ¿Quiere vender alojamiento + alquiler de automóvil? No hay problema; integre con dos proveedores diferentes, y listo ... actualizando manualmente la lista de ubicaciones en la ciudad (desde el proveedor de alquiler de coches) para que coincida con los hoteles (del proveedor de alojamiento, que solo le proporciona la ciudad para cada hotel). Por supuesto, siempre que ya haya hecho coincidir la lista de ciudades de las dos, ya que no existe un estándar internacional para códigos de ciudad.
A diferencia de muchas otras industrias que tienen muchos productos, la industria de viajes tiene muchos productos muy complejos. Amazon lo tiene fácil; vendiendo libros y vendiendo papas, es lo mismo; incluso puedes enviarlos en la misma caja. Se combinan fácilmente y no se ensamblan desde muchas partes. :)
PS. Vinculación a un hilo reciente interesante sobre Hacker News con información privilegiada sobre vuelos . PPS Recientemente se topó con un blog de gran tamaño aunque bastante viejo sobre el protocolo NDC de la IATA con una descripción general de cómo la industria de viajes está conectada y una lección de historia sobre cómo llegó a ser esto .
Recientemente encontré dos buenas API de sitios web de comparación de vuelos
Hay uno de Wego , y uno de Skyscanner . Ambos parecen tener un buen rango y amplitud de datos de varias aerolíneas y también una buena documentación.
Wego paga cada vez que un usuario hace clic desde su aplicación a un sitio web de reservas y Skyscanner paga a los afiliados el 50% de los "ingresos" (supongo que eso significa la comisión que hacen de las aerolíneas)
Solo 3 formas que conozco para obtener datos de sitios web.
Feeds RSS: utilizamos rss feeds en mi empresa para integrar los datos del sitio existente con nuestras aplicaciones. Es rápido y la mayoría de los sitios ya tienen una fuente RSS disponible. El problema no es que todos los sitios implementen correctamente el estándar RSS, de modo que si extrae datos de muchos canales RSS en muchos sitios, asegúrese de escribir el código para poder agregar excepciones y filtros fácilmente.
API: son agradables si están bien diseñadas y tienen toda la información que necesita, sin embargo, ese no es siempre el caso, y si los sitios no usan un formato de API estándar, entonces deberá admitir varias API.
Web Scraping: este método sería el menos confiable y el más costoso de mantener. Pero si no te queda nada más, se puede hacer.
Travelport ofrece un producto llamado "Universal API" que se conecta a vuelos y hoteles y compañías de alquiler de automóviles, y hace frente a ofertas de paquetes y a todas las complejidades relacionadas con impuestos y tasas de cambio:
https://developer.travelport.com/app/developer-network/resource-centre-uapi
Empecé a usarlo y parece estar bien hasta ahora. Las consultas son un poco lentas, pero también lo es cada consulta en cada sitio de OTA (agente de viajes en línea).
Usan un paquete de software como ITA Software , que es una de las compañías que Google está en proceso de retirar.
Este artículo dice que se le pidió a Kayak que dejara de eliminar una página de ciertas aerolíneas. Eso me lleva a pensar que es probable que raspen sitios con los que no tienen una relación (y un feed de datos que viene con esa relación).