Làm thế nào để một trang web như kayak.com tổng hợp nội dung? [đóng cửa]


82

Xin chào, tôi đang đùa giỡn với một ý tưởng cho một dự án mới và tự hỏi liệu có ai có ý kiến ​​về cách một dịch vụ như Kayak.com có ​​thể tổng hợp dữ liệu từ nhiều nguồn nhanh chóng và chính xác như vậy không. Cụ thể hơn, bạn có nghĩ rằng Kayak.com đang tương tác với các API hay chúng đang thu thập / quét các trang web của hãng hàng không và khách sạn để đáp ứng yêu cầu của người dùng? Tôi biết không có một câu trả lời đúng cho vấn đề này nhưng tôi tò mò muốn biết những gì người khác nghĩ sẽ là cách tốt để giải quyết vấn đề này. Nếu nó hữu ích, hãy giả sử bạn sẽ tạo kayak.com vào ngày mai ... dữ liệu của bạn đến từ đâu?

Câu trả lời:


146

Tôi đang làm việc trong ngành du lịch với tư cách là kiến ​​trúc sư phần mềm / trưởng dự án về loại dự án chính xác mà bạn mô tả - trong khu vực của chúng tôi, chúng tôi làm việc trực tiếp với các nhà cung cấp, nhưng đối với những người đi ra ngoài, chúng tôi kết nối với một số công ty tổng hợp.

Để trả lời câu hỏi của bạn ... một số dữ liệu bạn có, một số dữ liệu bạn có được theo nhiều cách khác nhau, và một số bạn phải tra tấn và vặn vẹo cho đến khi nó thú nhận.

Góc độ của bạn là gì?

Các câu hỏi bạn phải hỏi là ... Bạn muốn bán quảng cáo như Kayak hay bạn thực hiện cắt giảm như Expedia? Bạn đang tìm kiếm hoặc bán các dịch vụ du lịch? Bạn có nhắm mục tiêu đến thị trường ngách (ví dụ: chỉ du lịch bằng máy bay) hay mọi thứ (chỗ ở, hãng hàng không, thuê xe, các dịch vụ bổ sung như vận tải / tham quan / hội nghị, v.v.)? Bạn nhắm mục tiêu khu vực (Hoa Kỳ hoặc một phần của Hoa Kỳ) hay thế giới? Bạn đi sâu đến mức nào - bạn chỉ hiển thị một số trang web trên một màn hình hay bạn gộp các dịch vụ khác nhau lại với nhau và đóng gói chúng một cách linh hoạt?

Lấy dữ liệu

Nếu bạn đang sử dụng mô hình kinh doanh Kayak, về mặt kỹ thuật, bạn không cần sự cho phép của trang web ... nhưng rất nhiều trang web có chương trình liên kết với IFrame hoặc các cách đơn giản khác để hướng khách hàng đến trang web của họ. Mặt tích cực, bạn không phải giải quyết các khoản thanh toán / khiếu nại và chính khách du lịch. Về nhược điểm ... nếu bạn muốn tự mình so sánh giá và đưa ra lựa chọn rẻ nhất cho người dùng, bạn sẽ phải tích hợp ở mức độ sâu hơn, và điều đó có nghĩa là API và web cạo.

Còn đối với việc nạo web ... hãy tránh nó. Thật tệ. Có thật không. Đừng làm vậy. Tin tôi lần này đi. Ví dụ, một số thứ như lowcosters mà bạn không thể nhận được nếu không tìm kiếm trên web. Các hãng hàng không giá rẻ sống nhờ các dịch vụ giá trị gia tăng. Nếu người dùng không nhìn thấy trang web của họ, họ không bán thêm những thứ khác và họ không kiếm được gì. Do đó, họ không có chi nhánh, không cung cấp API và họ thay đổi bố cục trang web của mình gần như liên tục. Tuy nhiên, có những công ty kiếm sống bằng cách quét các trang web của lowcoster và gói chúng thành các API đẹp. Nếu bạn có đủ khả năng chi trả, bạn có thể cung cấp cho người dùng bảng so sánh chi phí của các chuyến bay giá rẻ và con số đó rất lớn.

Mặt khác, có những nhà cung cấp dịch vụ "bình thường" cung cấp API. Không phải là vấn đề lớn khi đến các hãng hàng không vì tất cả họ đều thống nhất theo IATA ; về cơ bản, bạn mua từ IATA và IATA phân phối tiền cho các nhà mạng. Tuy nhiên, bạn có thể không muốn kết nối trực tiếp với mạng của nhà cung cấp dịch vụ. Ngày nay, họ có các dịch vụ web và SOAP, nhưng hãy tin tôi khi tôi nói rằng có các giao thức SOAP chỉ là một lớp bao bọc cực kỳ mỏng xung quanh lời nhắc văn bản mà qua đó bạn có thể tương tác với máy tính lớn bằng giao thức kiểu 80 (hãy nghĩ về Unix nhắc bạn phải thanh toán ở đâu cho mỗi lệnh; và cần khoảng 20 lệnh để thực hiện một lần tìm kiếm). Đó là lý do tại sao bạn có thể muốn kết nối với ai đó nhiều hơn một chút trong chuỗi thức ăn, với một API tốt hơn.

Do đó, các hãng hàng không nằm trên cả hai cực của đường cong Gaussian; một bên là các nhà cung cấp riêng lẻ và một bên là các hệ thống tập trung cao độ khác, nơi bạn triển khai một API và bạn có thể bay đến mọi nơi trên thế giới. Chỗ ở và phần còn lại của các sản phẩm du lịch nằm giữa. Có một số công ty lớn tập hợp các khách sạn và rất nhiều nhà cung cấp nhỏ với nhiều công ty tổng hợp chỉ bao gồm một phần của phổ. Ví dụ, bạn có thể thuê một ngọn hải đăng và thậm chí nó không đắt đến thế - nhưng bạn sẽ không thể so sánh giá của các ngọn hải đăng khác nhau ở một nơi.

Nếu bạn tham gia vào mô hình kinh doanh Kayak, có thể bạn sẽ phải tìm kiếm các trang web. Nếu bạn đang tích hợp các nhà cung cấp khác nhau, bạn thường sẽ làm việc với các API, một số trong số đó khá tốt và hầu hết đều có thể chấp nhận được. Tôi chưa làm việc với RSS nhưng không có nhiều sự khác biệt giữa RSS và web cạo. Ngoài ra còn có một tùy chọn thứ tư không được đề cập trong câu trả lời của Jeff ... một tùy chọn mà bạn lấy dữ liệu của mình hàng đêm, ví dụ: tệp .CSV thông qua FTP và tương tự.

Cuộc sống thật tệ (mini-rant)

Và sau đó là sự phức tạp. Bạn càng muốn thêm nhiều giá trị, bạn càng phải xử lý phức tạp hơn. Bạn có thể tìm kiếm chỗ ở cho phép vật nuôi không? Đối với một nhà trọ nằm cách trung tâm thị trấn chưa đầy 5 km? Bạn có đang kết hợp các chuyến bay và bạn có thể đảm bảo rằng khách du lịch sẽ có đủ thời gian để đi từ sân bay này đến sân bay khác ... bạn có thể bán phương tiện đi lại trước không? Một nghệ sĩ cello nổi tiếng không muốn chia tay chiếc đàn Cello quý giá của mình ở thế kỷ 18; bạn có thể bán cho anh ta một chỗ ngồi khác cho đàn cello (vâng, không làm cho cái này)?

Muốn so sánh giá? Chắc chắn, tiền phòng là 30 EUR một đêm. Nhưng bạn có thể nhận được một giường đôi cho 30 người và một giường đơn cho 20 người hoặc bạn có thể nhận một giường phụ cho một giường đôi và được giảm giá 70% cho người thứ ba. Nhưng chỉ khi đó là trẻ em dưới 12 tuổi; giường phụ của chúng tôi không dành cho người lớn. Và bạn không nhận được giá giường phụ trong kết quả tìm kiếm - chỉ khi bạn tính được giá cuối cùng.

Và thậm chí không giúp tôi bắt đầu với bao bì động. Muốn bán chỗ ở + cho thuê xe hơi? Không vấn đề gì; tích hợp với hai nhà cung cấp khác nhau, và bạn cứ ... tự cập nhật danh sách các địa điểm trong thành phố (từ nhà cung cấp dịch vụ cho thuê xe) để khớp với các khách sạn (từ nhà cung cấp chỗ ở, người chỉ cung cấp cho bạn thành phố cho mỗi khách sạn). Tất nhiên, với điều kiện là bạn đã khớp danh sách các thành phố của cả hai, vì không có tiêu chuẩn quốc tế nào cho mã thành phố.

Không giống như nhiều ngành công nghiệp khác có nhiều sản phẩm, ngành du lịch lữ hành có nhiều sản phẩm rất phức tạp. Amazon có nó dễ dàng; bán sách và bán khoai tây, nó giống nhau; bạn thậm chí có thể gửi chúng trong cùng một hộp. Chúng kết hợp dễ dàng và không được lắp ráp từ nhiều bộ phận. :)

PS Liên kết đến một chủ đề thú vị gần đây trên Hacker News với một số thông tin nội bộ về các chuyến bay . PPS Gần đây đã tình cờ phát hiện ra một bài đăng trên blog khá cũ về giao thức NDC của IATA với tổng quan về cách ngành du lịch được kết nối và một bài học lịch sử về cách thức hoạt động của điều này .


Domchi, điều này có thay đổi nhiều trong năm nay không? Hiện có các API khác không?
Rizwan Kassim

Không, không nhiều; thị trường bị phân tán và điều này khó có thể sớm thay đổi, nếu có. Sự kiện đáng chú ý là Google tham gia thị trường chuyến bay (thông qua Phần mềm ITA, xem câu trả lời mavrcks); họ có các nguồn lực để củng cố thị trường và cung cấp các API nhưng tôi nghi ngờ đó là những gì họ dự định / có thể làm. Trong thế giới khởi nghiệp, đối thủ thú vị nhất có lẽ là airbnb.com nhưng cho đến nay họ không cung cấp API. Các API trong miền này không khó tìm, nhưng hiếm khi miễn phí. Kiểm tra Programmableweb.com/apitag/bookingProgrammableweb.com/apitag/travel để biết danh sách API tốt.
Domchi

Bạn đang nói rằng Kayak.com loại bỏ các trang web của các hãng hàng không để lấy nội dung và không phải trả tiền cho nó? Điều gì về mô hình kinh doanh của họ cho phép họ làm điều đó? Các điều khoản sử dụng của các hãng hàng không lớn dường như nói rằng không thể lấy nội dung / dữ liệu từ trang web của họ để sử dụng cho trang khác.
Ryan Bales

@Ryan Tôi không thể nói Kayak làm gì, nhưng tôi biết rằng hầu hết các hãng hàng không giá rẻ không cung cấp bất kỳ API nào để thúc đẩy doanh số bán hàng độc quyền thông qua trang web của họ và bán nhiều nhất có thể. Vì vậy, đến lượt nó, các trình tổng hợp sẽ loại bỏ các trang web của họ và mô phỏng tương tác của người dùng. Đáp lại, các hãng hàng không thường xuyên thay đổi cấu trúc trang web và trò chơi mèo vờn chuột vẫn tiếp diễn. Tôi sẽ tưởng tượng rằng rất khó để các nhà cung cấp dịch vụ chứng minh rằng điều này vẫn tiếp diễn, nhưng họ biết về nó và có lẽ không muốn ngăn chặn hoàn toàn vì họ muốn lưu lượng truy cập mà nếu không họ sẽ không nhận được.
Domchi

@Domchi làm thế nào là những gì bạn đang mô tả hợp pháp? Từ những gì tôi đã đọc, việc tìm kiếm trên web đã bị coi là bất hợp pháp trong nhiều trường hợp tòa án khác nhau liên quan đến dữ liệu hàng không, danh sách ebay và những thứ khác (đặc biệt là để sử dụng thương mại các dữ liệu đã nêu).
Justin Skiles


7

Chỉ có 3 cách tôi biết để lấy dữ liệu từ các trang web.

Nguồn cấp dữ liệu RSS - Chúng tôi sử dụng nguồn cấp dữ liệu rss rất nhiều tại công ty của tôi để tích hợp dữ liệu của trang web hiện có với các ứng dụng của chúng tôi. Nó nhanh chóng và hầu hết các trang web đã có sẵn nguồn cấp dữ liệu RSS. Vấn đề với điều này là không phải tất cả các trang web đều triển khai tiêu chuẩn RSS đúng cách vì vậy nếu bạn đang lấy dữ liệu từ nhiều nguồn cấp RSS trên nhiều trang web thì hãy đảm bảo rằng bạn viết mã của mình để có thể thêm ngoại lệ và bộ lọc một cách dễ dàng.

API - Đây là những thứ tốt nếu chúng được thiết kế tốt và có tất cả thông tin bạn cần, tuy nhiên không phải lúc nào cũng vậy, ngoài ra nếu các trang web không sử dụng định dạng api tiêu chuẩn thì bạn sẽ phải hỗ trợ nhiều API.

Web Scraping - Phương pháp này không đáng tin cậy nhất cũng như tốn kém nhất để duy trì. Nhưng nếu bạn không còn gì khác thì có thể làm được.


4

Travelport cung cấp một sản phẩm có tên là "Universal API" kết nối với các chuyến bay và khách sạn cũng như các công ty cho thuê xe hơi và đối phó với các giao dịch trọn gói và tất cả những phức tạp khác nhau liên quan đến thuế và tỷ giá hối đoái:

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

Tôi mới bắt đầu sử dụng nó và nó có vẻ ổn cho đến nay. Các truy vấn hơi chậm, nhưng sau đó mọi truy vấn trên mọi trang web của OTA (Đại lý du lịch trực tuyến) cũng vậy.


Chi phí sử dụng Universal API là bao nhiêu?
Amit

1
Tôi quên mất rồi. Tôi nghĩ rằng một khoản phí một lần ở hàng nghìn thấp cộng với khoản phí hàng năm ở hàng nghìn.
Tim Cooper

API phổ quát có sẵn cho điện thoại di động không?
iSrinivasan27,

3

Bài báo này nói rằng Kayak đã được yêu cầu ngừng quét một trang của hãng hàng không nhất định. Điều đó khiến tôi tin rằng họ có thể thực hiện việc tìm kiếm trên các trang web mà họ không có mối quan hệ (và nguồn cấp dữ liệu đi kèm với mối quan hệ đó).


2

Gần đây có hai API tốt mà tôi đã tìm thấy từ các trang web so sánh chuyến bay

Có một từ Wego và một từ Skyscanner . Cả hai dường như đều có phạm vi và độ rộng dữ liệu tốt từ một số hãng hàng không và cũng có tài liệu tốt.

Wego trả tiền mỗi khi người dùng nhấp từ ứng dụng của bạn đến trang web đặt chỗ và Skyscanner trả cho các chi nhánh 50% 'doanh thu' (tôi cho rằng điều đó có nghĩa là hoa hồng mà họ thực hiện từ các hãng hàng không)


4
FYI Wego cũng tính phí $ 1000 USD mỗi năm cho đặc quyền sử dụng API của họ.
Sk446

Chính xác. Ngoài ra, xa hơn về bài đăng của tôi (như tôi biết bây giờ nhiều hơn một chút), Skyscanner trả tiền cho mỗi lần nhấp chuột thoát theo cách giống như cách Wego làm.
Jonathon Blok

Bạn có biết Skyscanner có kế hoạch tìm kiếm khách sạn nào không vì có vẻ như họ vừa thực hiện chuyến bay / ô tô ngay bây giờ.
Sk446

2
Xin chào, nhóm Skyscanner API ở đây. Khách sạn đang hoạt động. Vui lòng truy cập business.skyscanner.net nếu bạn muốn thảo luận về việc sử dụng bất kỳ API nào của chúng tôi (chuyến bay, thuê xe, khách sạn).
Skyscanner

Chỉ cần kiểm tra SkyScanner. Các nhà phát triển mới là vô giá trị đối với họ. Bạn không thể sử dụng API chuyến bay của họ trừ khi trang web của bạn tạo ra ít nhất 200.000 lượt truy cập mỗi tháng! Thảm hại!
Hajjat

0

Đây là một bài viết cũ nhưng tôi nghĩ tôi chỉ cần thêm vào. Tôi là một kiến ​​trúc sư dữ liệu làm việc cho một công ty cung cấp nội dung cho các trang web du lịch này. Công ty này ký hợp đồng với nhiều thương hiệu khách sạn, khách sạn cá nhân và các nhà cung cấp nội dung khác. Chúng tôi tổng hợp thông tin này sau đó chuyển nó sang các kênh khác nhau. Sau đó, họ tổng hợp lại vào hệ thống của họ. Hệ thống GDS lớn cũng là nhà cung cấp nội dung. Việc tổng hợp được thực hiện bằng nhiều phương pháp ... hợp thuật toán (in-house) và khóa. Là một dịch vụ tổng hợp, chúng tôi cần giao tiếp ở cấp độ khách hàng.

Hi vọng điêu nay co ich! chúc mừng!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.