航空運賃最安検索サイト「リアル先得」
日本航空のWebサイトから、実際に販売中の運賃をスクレイピングによって取得し、区間ごとに最安の日付・便名を簡単に検索できるサービスです。
リアル先得
https://x-portfolio.work/sakitoku/
概要
日本航空のWebサイトから、実際に販売中の運賃をスクレイピングによって取得し、区間ごとに最安の日付・便名を簡単に検索できるサービスです。
制作の動機
同社は自社サイト「先得カレンダー」において、区間ごとの最安値を掲示しています。
しかし、
・先得カレンダーは更新頻度が低いため、最安値の日付で検索しても実際にはその運賃は売り切れていた
・先得カレンダーに表示される運賃は、「旅客施設使用料(PFC)」が含まれないため、実際の支払金額がわかりにくかった
・普通席しか対応していない(「クラスJ」「ファーストクラス」の最安値も見たい)
・「伊丹・関西」「羽田・成田」などが別々の検索になっている(同一地域の空港はまとめて見たい)
といった弱点・要望があったことから、予約サイトに掲載されている価格をスクレイピングし、最安値順で表示する仕組みを作りました。
システム構成図
日本航空のWebサイトへのアクセスは、下記2つの観点から、AWS Lambdaを用いて行っています。
・自宅サーバーから直接リクエストを投げた場合、付与されたIPアドレスのポートが枯渇する可能性がある。
・同一IPアドレスからの連続アクセスの判定を避けるため(AWS Lambdaでは、同時リクエストするとその分ワーカーが立ち上がり、アクセス元のIPアドレスを分散できます)
また自宅サーバーでは、PostgreSQLサーバのポートのみを、レンタルサーバのIPアドレスに対して公開、利用者からのアクセスはレンタルサーバで受け持つ構成としています。
使用する言語・フレームワーク等
・AWS Lambda: node.js, axios, jsdom
・PHP: Laravel
・データベース: PostgreSQL