2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【旅行価格比較】海外旅行の価格比較ツールの概要説明: 何ができて、どう使い、何が分からないか(2026-10-17)

2
Last updated at Posted at 2026-10-16

このツールについて

海外旅行の価格を、同じ条件で並べて比べる個人用のツールです。旅行会社のツアーで買った場合の総額と、航空券とホテルを別々に手配した場合の合計を並べて、どちらが安いかを見ます。今は自分だけで使っていて、公開はしていません。

前回の記事(2026-10-16公開)はこちら → https://qiita.com/rightcross-ae86/items/86cb4e3571e241eb85fe
このツールを最初にご紹介した記事(2026-10-11公開)はこちら → https://qiita.com/rightcross-ae86/items/62ab81f505124b0a6613

この記事について

この記事は、ツールの概要の説明です。何ができるか、どう使うか、画面に何が出るか、どんな部品でできているか、まだ分からないことは何かを書きます。

金額を比べた結果の報告ではありません。結果を載せていない理由は、「分からないこと」に書きました。

この記事では、次のように呼びます。

  • 「ツアー」: 旅行会社が売る、航空券とホテルのセット
  • 「個別手配」: 航空券とホテルを別々に探して、自分で手配すること
  • 「拡張機能」: ブラウザに追加する小さなプログラム
  • 「サーバー」: データを預かって集計する、自分で管理しているコンピューター
  • 「ダッシュボード」: このツールを操作する、自分用のWebの画面。その中の「旅行比較」のタブを使います
  • 「サイトの画面」: ブラウザに表示されている、旅行サイトのページ
  • 「検索」: 出発地・行き先・出発日・泊数・人数をそろえて、各サイトを同じ条件で探すこと。このツールの1回分の単位です
  • 「比較表」: 1回の検索の結果を、サイトごとに並べた表

先に要点

  • 作っているのは、同じ旅行内容で「ツアーの総額」と「個別手配の合計」を並べるツールです
  • 使い方は、条件を選ぶ → 各サイトの検索結果を開く → 拡張機能がサイトの画面の価格だけを読んで送る → 比較表を見る、の流れです
  • 結果は、ツアー最安・個別手配の合計・差額の3つの数字と、サイトごとの内訳の表で見ます
  • この機能のサーバーは、旅行サイトへ自動でアクセスしません。価格を読むのは、自分のブラウザの拡張機能です
  • 範囲は、行き先7都市(東南アジア)・サイト10種です。主な出発地は、東京・大阪・名古屋・福岡・札幌です
  • 条件が違う金額は並べません。分からないことは、「分からない」と表示します
  • 金額を比べた結果は載せていません。確認できていない条件が残っているためです

何ができるのか

  • 同じ条件で並べる: 出発地・行き先・出発日・泊数・人数をそろえて、10種のサイトを同じ条件で探します
  • 3つの数字を出す
    • ツアー最安: ツアーを探す6つのサイトの最安のうち、いちばん安いもの
    • 個別手配の合計: 航空券の最安と、ホテルの最安と、現地の交通費(手入力)の合計
    • 差額: ツアー最安 − 個別手配の合計。プラスなら、個別手配のほうが安いことを表します
  • サイトごとの内訳を出す: 比較表に、サイトごとの最安の値段・読み取りの精度・比較の条件・最安のプランやホテルの名前などが並びます
  • 比べられない金額を除く: 人数や出発日が検索と違う金額は、集計に使いません。除いた理由は、表の備考に出ます
  • 分からない理由を出す: 金額が出ないときは、0件・対象外・拒否・読めず・未確認のどれかを表示します
  • 行き先を足せる: ダッシュボードから都市を追加できます

使い方の流れ

  1. ダッシュボードの「旅行比較」のタブで、旅行の検索条件を選び、「全サイトで検索を開く」を押します
  2. サーバーが、条件から各サイトの検索結果のURLを組み立て、自分のブラウザで開きます。URLに入れる行き先や出発地の番号は、サイトごとに別です
  3. 拡張機能が、開いたサイトの画面に表示されている価格だけを読んで、サーバーに送ります。サーバーから旅行サイトへは、何も送りません
  4. サーバーが、送られた価格のうち、検索の条件と合っているものだけを集計します
  5. ダッシュボードで、ツアー最安・個別手配の合計・差額と、サイトごとの内訳を見ます

出発地と行き先を複数選んで、検索を順に自動で行う「まとめて確認」もあります。こちらは、確認のために使います(「確認のしかた」に書きました)。

検索で指定できる条件

検索条件の入力欄は、5つの枠に分かれています。

枠 指定する項目
① 行き先 出発地・行き先
② 日程 出発日・泊数(1〜30泊)
③ 人数・部屋 大人の人数(1〜9人)・部屋数(1〜5室)
④ ホテルの条件 宿の種類(すべて/ホテルのみ=ホステル・ドミトリーを除く)・ホテルの星(指定なし/3つ星以上/4つ星以上)・宿の口コミ点数(指定なし/高評価の宿だけ)
⑤ 航空券の条件 座席クラス(エコノミー・プレミアムエコノミー・ビジネス・ファースト)

④のホテルの条件は、ホテルを探す2つのサイトに使います。口コミ点数の「高評価」は、サイトによって基準が違います(6点以上と7点以上)。現地の交通費は、検索のあとに、結果の画面で手入力します。

比較表で見えるもの

結果の上には、次の見出しが並びます。

見出し 意味
ツアー最安 ツアーを探すサイトの最安のうち、いちばん安いもの(サイト名つき)
航空券最安・ホテル最安 航空券を探すサイト、ホテルを探すサイトそれぞれの最安。ホテル最安は、料金の低い順に並べた画面の先頭です(見えている範囲の最安で、全件ではありません)
現地の交通費 手入力(円)
個別手配の合計 航空券最安 + ホテル最安 + 現地の交通費
差額(ツアー − 個別) プラスなら「個別が安い」、マイナスなら「ツアーが安い」と表示します

その下の比較表には、サイトごとに次の列が並びます。

列 意味
サイト サイト名
種別 ツアー・航空券・ホテルの別
値段 そのサイトの画面で見えた最安の金額
精度 「専用読み取り」=そのサイト専用の読み取りができた。「参考(推定)」=画面の円の金額を推定で拾っただけ。「検索結果0件」。「未対応」。集計に使うのは、専用読み取りだけです。理由が必要なときは、下に小さく注記が付きます(対象外・拒否された・読めず・条件が違うので除外、など)
比較の条件 日程の数え方と、金額に含まれるもの(燃油・空港諸税など)。人数や日数、出発日が検索と違うときは、注意と警告が出ます
読み取り元の文言(参考) 最安のプランやホテルの名前など、読み取った元の文言
更新 価格を読んだ日時
タブ 「開く(数字)」のボタン。そのサイトの画面を開きます。数字は、そのサイトから受け取ったタブの数です

画面の上には、「サイトごとに、日数の数え方・出発日・燃油・空港諸税の扱いが違います。金額を比べる前に、下の表の『比較の条件』を確認してください」という注意書きも出ます。

仕組み

部品は3つです。

  • 拡張機能: ブラウザに追加します。サイトごとの専用の読み取りがあり、専用がないページは、画面の円の金額を推定する読み取りで拾います(推定は参考表示だけで、集計には使いません)。ポップアップからは、手動で価格を送ったり、読めなかったページのHTMLを送ったりもできます。送るときは、合言葉(トークン)が要ります
  • サーバー: 検索の作成、検索URLの組み立て、価格の受信、集計、条件の自動照合を受け持ちます。検索の条件と、サイトごとの最新の価格候補は、データベースに保存します
  • ダッシュボード: 「旅行比較」のタブです。検索条件の入力、結果の表示、都市の追加を行います

サーバーが扱う「検索」と、拡張機能が送る「受信内容」は、次のように定義されています。

class SearchIn(BaseModel):
    origin: str = "TYO"
    dest_code: str = "BKK"
    depart_date: str
    nights: int = 4
    adults: int = 2
    cabin: str = "economy"
    rooms: int = 1
    lodging: str = "all"
    rating: str = "all"
    stars: str = "all"
...
class OfferIn(BaseModel):
    search_id: int
    site: str
    tab_key: str
    url: Optional[str] = None
    page_title: Optional[str] = None
    candidates: list = []
    method: str = "generic"
    zero: Optional[str] = None  # 検索結果0件の画面の文言(拡張機能v0.1.13〜。価格の候補が無いときだけ使う)
    refused: Optional[str] = None  # サイトに拒否された画面の文言(403・Access Denied・確認画面など。拡張機能v0.1.15〜。価格の候補が無いときだけ使う)
  • SearchInが検索1回分の条件です。出発地(origin、初期値は東京)・行き先(dest_code、初期値はバンコク。どちらも航空業界で使う3文字のコード)・出発日・泊数・大人の人数・座席クラス・部屋数・宿の種類・口コミ・星です
  • OfferInが、拡張機能が1回送る内容です。どの検索の結果か(search_id)、どのサイトのどのタブか(site・tab_key)、開いていたURLとページのタイトル、価格の候補(candidates)、読み取りの方式(method。専用か、推定のgenericか)です。価格が読めなかったときのために、検索結果0件の文言(zero)と、サイトに拒否された画面の文言(refused)を送る欄もあります
  • 抜粋は実物のままです。離れた箇所を...でつなぎました

行き先とサイトの番号

サイトの検索結果のURLに入れる行き先や出発地の番号は、サイトごとに別で、計算では出せません。そこで、次の順に使います。

  1. 確認済みの値
  2. 実際の検索で覚えた値: 各サイトで手動で検索して「価格を送る」と、サーバーが、送られたURLとページのタイトルから都市の番号を読んで覚えます。タイトルに都市名があるときだけ覚えます
  3. 一覧データから引いた候補

確認済みの値は、候補で上書きしません。行き先を足すときは、ダッシュボードの「都市の追加」に名前を入れると、候補が出て、英語名・国・番号が自動で入ります。

対応範囲

項目 内容
行き先 7都市: バンコク・ジャカルタ・ホーチミン・ハノイ・クアラルンプール・バリ島・プーケット
主な出発地 東京・大阪・名古屋・福岡・札幌
サイト 10種: ツアーを探す6・航空券を探す2・ホテルを探す2
人数 大人1〜9名(1名でも使えます)

確認のしかた

金額が正しいかは、4つの方法で確かめています。詳しい中身は、2026-10-11の記事に書きました。

  • サイトの画面との突き合わせ: 条件をそろえて検索し、サイトの画面のタイトルやURLが、検索の条件と合っているかを1件ずつ見ます
  • 自動の照合: 開いたURLと、サイトの画面が最後に開いていたURLを比べ、出発地・日付・人数・行き先が書き換えられていないかを見ます
  • まとめて確認(自動): 出発地と行き先を複数選んで、検索を順に自動で行います。開始は、ボタンを押したときだけです。1回の実行は最大20件、検索と検索の間は60秒あけます。サイトに拒否されたら、そのサイトは、その実行の間は以降送りません
  • 実行の依頼: サーバーに「この条件で確認して」という依頼をコマンドで出すと、ダッシュボードのタブが受けて、まとめて確認を自動で行います。依頼を受け付ける設定は、初期値が「受け付けない」で、タブごとに切り替えます。1回の上限(20件)と間隔(60秒)は、依頼では変えられません

分からないこと

  • 金額を比べた結果を載せていない理由: 確認できた条件が一部で、1つの日付の結果から言えることが限られるためです。ツアーと個別手配のどちらが安いかは、この記事では書いていません
  • 燃油・空港諸税の込み/別: サイトによって違います。確認できていないサイトは、比較表の「比較の条件」に「未確認」と出ます
  • 個別手配の合計は「見えている範囲の最安」: 航空券の最安は乗り継ぎ便のことがあります。ホテルの最安は、「ホテルのみ」や「4つ星以上」にしても、格安の宿になることがあります
  • 現地の交通費: 自動では取れません。手入力です
  • 人数をURLで指定できないサイト: ツアーを探す6つのサイトのうち2つは、確認した範囲では、人数をURLで指定できません。サイトの画面で人数を直してから価格を送ります。人数が2名以外の検索では、比較表の「比較の条件」に注意が出ます
  • 日数・出発日の数え方: サイトによって違います。比較表の「比較の条件」で確認が要ります
  • 確認していない組み合わせ: 7つの行き先と全部の出発地の組み合わせは、確認していません。比べたい組み合わせが決まってから確かめる方針です
  • サイトの画面の変更: 画面の作りが変わると、読めなくなることがあります。その場合は「読めず」と表示されます
  • 公開: 今は個人用で、公開していません。他の人が使う形にするときは、各サイトの規約を確認し直す必要があります

まとめ

  • 海外旅行の「ツアーの総額」と「個別手配の合計」を、同じ条件で並べて比べる個人用のツールです
  • 使い方は、条件を選ぶ → 各サイトの検索結果を開く → 拡張機能が画面の価格だけを読んで送る → 比較表を見る、の流れです
  • この機能のサーバーは旅行サイトへ自動でアクセスせず、条件が違う金額は並べません。分からないことは、「分からない」と表示します
  • 行き先7都市・サイト10種が対象です
  • 燃油・空港諸税の込み/別が確認できていないサイトがあるなど、分からないことが残っています。金額を比べた結果は、この記事には載せていません

気になる点・ご質問があればコメントでお知らせください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?