航空運賃最安検索サイト「リアル先得」

OVERVIEW

日本航空の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