【ITニュース解説】How to get Google Hotels prices for any dates with Python (and see which booking site is cheapest)
2026年10月15日に「Dev.to」が公開したITニュース「How to get Google Hotels prices for any dates with Python (and see which booking site is cheapest)」について初心者にもわかりやすく解説しています。
ITニュース概要
PythonでGoogle Hotelsのホテル価格データを取得するツールが公開された。このツールを使えば、特定の条件でホテルを検索し、各ホテルの最安値を提供する予約サイトや最適な宿泊日を効率的に見つけられる。Apifyを通じて利用可能だ。
ITニュース解説
Google Hotelsは、宿泊施設の比較検討に非常に便利なサービスだ。Booking.com、Expedia、Agodaなど、様々な予約サイトの価格を一括で表示し、最適な宿泊プランを見つける手助けをしてくれる。しかし、この便利なGoogle Hotelsの価格データをプログラミングで自動的に取得するための公式なAPI(アプリケーション・プログラミング・インターフェース)は提供されていない。APIとは、異なるソフトウェア同士が情報をやり取りするための窓口のようなもので、これがなければ直接データを引き出すことが難しい。
このような状況でも、特定の目的のためにデータが必要な場合、開発者は「Webスクレイピング」という技術を利用することがある。Webスクレイピングとは、Webサイトの情報をプログラムで自動的に収集する技術のことだ。今回のニュース記事では、公式APIがないGoogle Hotelsからホテル価格データをPythonを使って効率的に取得する方法が解説されている。これは、著者が価格監視プロジェクトのために自ら開発したスクレイパー(Webスクレイピングを行うプログラム)を、Apifyというクラウドプラットフォーム上で公開し、それを利用する方法を紹介するものだ。
Apifyは、Webスクレイピングやデータ抽出をクラウド上で行うためのプラットフォームだ。複雑なWebサイトからのデータ収集を簡素化し、開発者がすぐに利用できる形で提供している。このプラットフォームを使うことで、個々の開発者がゼロからスクレイパーを開発する手間を省き、既存の高性能なツールをPythonなどのプログラミング言語から簡単に呼び出して使えるようになる。Apifyには無料の月間クレジットが提供されるため、初心者でも試しやすい点が特徴だ。
具体的に、Pythonを使ってApifyでGoogle Hotelsのデータを取得するには、いくつかのステップが必要となる。まず、Pythonの環境に「apify-client」というライブラリをインストールする。これはApifyのサービスとPythonプログラムを連携させるためのツールだ。次に、Apifyのアカウント設定ページから取得できる「APIFY_TOKEN」という認証キーを設定する。これは、どのユーザーがApifyのサービスを利用しているかを識別するための重要な情報だ。
準備が整えば、いよいよスクレイパーの利用を開始できる。記事で紹介されているスクレイパーは、主に三つのタイプがある。
一つ目は、「特定の都市におけるホテルの情報を、指定した日付と予算で検索する」機能だ。たとえば、リスボンという都市で、30日後のチェックインから2泊、1泊あたり200ユーロ以下の条件で、星の評価が高いホテルを探す、といった使い方ができる。スクレイパーには都市名、チェックイン・チェックアウト日、通貨、検索するホテルの最大数、1泊あたりの最大料金などの情報を入力として与える。すると、ホテル名、星の数、1泊あたりの料金、総宿泊料金、評価点、レビュー数といった基本的な情報だけでなく、ホテルの座標、チェックイン・アウト時間、周辺施設、写真、ホテル公式サイトのURL、レビューのトピック(例:「立地が良い」といったコメントのポジティブ/ネガティブな数)など、非常に詳細な情報が取得できる。Google HotelsのURLは、日付や通貨といった情報が複雑な形式でエンコードされているが、このスクレイパーはそうした内部の仕組みを意識することなく、簡単にデータを取得できるように設計されている。
二つ目は、「複数の予約サイトの中から最も安いホテル価格を見つける」機能だ。これは、ホテルの「レートパリティ」と呼ばれる価格戦略をチェックする目的や、旅行アプリで「どこで予約するのが一番安いか」という機能を提供したい場合に非常に有用だ。スクレイパーを実行する際にincludeProviderPrices: trueという設定を加えるだけで、Hotels.com、Expedia、Booking.comなど、そのホテルを取り扱うすべての予約サイトとその価格が、安い順にリストアップされる。驚くことに、同じホテルでも予約サイトによって価格に大きな差があることが示されており、ホテルの自社サイトよりもBooking.comの方が安いといった事例も確認できる。
三つ目は、「特定のホテルの価格カレンダーを生成し、最も安い宿泊日を特定する」機能だ。たとえば、「ヒルトン・パリ・オペラ」というホテルについて、今後30日間の宿泊料金を1泊あたりで調べ、最も安い日を見つけるといったことが可能だ。このスクレイパーは、指定した期間内の各チェックイン日における価格を抽出し、最も安価な日をリストアップしてくれる。これにより、旅行者は最もお得な日を選んで予約したり、競合他社が週末と平日でどのように価格設定を変えているかを分析したりすることができる。
さらに、Google Hotelsは通常のホテルだけでなく、Vrbo、Booking.com、Expediaなどが提供するアパートメントやヴィラなどの「バケーションレンタル」の情報も扱っている。このスクレイパーは、これらのレンタル物件についても、寝室数、バスルーム数、収容人数、設備などの詳細情報を取得できる。
これらのスクレイパーは、ApifyのMCPサーバーという仕組みを通じて、ClaudeやCursorといったAIエージェントからも呼び出すことが可能だ。これにより、「12月12日から14日まで、リスボンで150ユーロ以下の4つ星ホテルを見つけて、どのサイトが一番安いか教えて」といった自然言語の指示でデータ取得をAIに依頼できるようになる。
Apifyの利用には費用が発生するが、その料金体系は非常に細かく設定されている。例えば、ホテル情報を1,000件取得するのに2ドル、予約サイトごとの価格情報を含める場合は追加で1,000件あたり2ドル、価格カレンダーは1,000件の日付価格につき1.5ドルといった具合だ。しかし、新しいApifyアカウントには無料の月間クレジットが付与されるため、数千件のホテル情報であれば無料で試すことができる。
このように、公式APIがなくても、Apify上で公開されているスクレイパーとPythonを組み合わせることで、Google Hotelsの豊富な宿泊施設データを柔軟に取得し、様々な目的で活用することが可能になる。これは、システムエンジニアを目指す初心者にとって、Webスクレイピングやクラウドサービス連携の具体的なイメージをつかむ良い機会となるだろう。