京都のような、歴史的建造物と紅葉を同時に楽しめる観光地は世界でも数えるほどしかありません。今回は、そんな京都の紅葉シーズンにおけるホテルリストをBooking.comから取得する方法をご紹介します。
WebスクレイピングツールのOctoparse(オクトパス)を使えば誰でも簡単にBooking.comからホテルリストを取得できるので、ぜひ実践してみてください。
Octoparse(オクトパス)とは?
WebスクレイピングツールのOctoparseは、インターネット上にあるさまざまな情報を自動的に取得してくれるツールです。
ボタンを押す・テキストを入力するなどの操作だけで、プログラミングに触れたことがない方でWebスクレイピングを実行できます。
また、Octoparseでは世界中で利用されているサイト・サービスの情報収集テンプレートをご用意しています。Booking.comのテンプレートもありますが、今回は「京都の紅葉シーズン」ということで宿泊日を指定するためにWebスクレイピングをゼロから作ります。
「ゼロから作る」といっても特定の場所をクリックする、テキストを入力するという作業だけで作れるのでご安心ください。
https://www.octoparse.jp/template/booking-com-hotel-listings-scraper
Booking.comでホテルリストを作る方法
それでは早速、Octoparseを使ってBooking.comからホテルリストを作っていきます。
下準備として宿泊先と宿泊日を指定したURLを取得します。Booking.comにアクセスしたら宿泊地・チェックイン・チェックアウト・宿泊人数を指定して「検索」をクリックし、表示されたページのURLをコピーします。今回は次のような条件を指定しました。
- 京都市
- 11月11日(金)チェックイン
- 11月13日(日)チェックアウト
- 大人2人

URLをコピーしたらOctoparseを起動します。最初に表示されたページの入力欄にコピーしたURLを貼り付け、「抽出開始」をクリックします。

少しするとURLで指定したページが表示されるので、「Webページを自動識別する」をクリックします。

Octoparseがページを自動識別し、ホテルリストを作るプログラムを生成してくれるので、そのまま「ワークフローを生成」をクリックします。

ここで、「ページネーション」の確認を行いましょう。ページネーションとは「次のページに移動するボタンをクリックする」という指示部分です。ページネーション設定が間違っていると正しく情報収集できないので、実行前に確認しておきます。画面右側にワークフローが表示されているので、ページネーションの枠内にある「次のページをクリック」をクリックします。

クリックすると次のページが移動するので、画面下部までスクロールしてページが正しく移動しているかを確認します。

1ページ目から2ページ目に移動しているので、この時点でページネーションに問題はありませんね。続けて「ページネーション」をクリックしてみます。

するとどうでしょう。3ページ目ではなく28ページ目が緑色で表示されていますね。これは、「ページネーションとして28ページ目のボタンが設定されています」という意味です。
つまり、このままWebスクレイピングを続けると1ページ目から2ページ目、次に28ページ目に移動することになります。ページネーションを正しく機能させるために、少し調整しましょう。
画面右側のワークフローで「ページネーション」を選択したまま、その画面下部にある「要素のXPath」を指定します。入力欄の右側にあるボタンをクリックしたら、画面上部に「クリックしてページ要素を~」という文言が表示されるのを確認してください。さらに「次のページに移動するボタン」に該当する部分をクリックします。

ボタンをクリックする際は、テキスト部分ではなくボタンの枠部分をクリックしましょう。テキスト部分を選択するとボタンとして認識されない可能性があります。

選択したボタン部分が緑色で表示されれば設定はOKです。画面右下の「保存」をクリックし、先ほどと同じ手順でページネーションが正しく機能しているか確認します。

この状態でもWebスクレイピングを実行できますが、ホテルリストの情報項目を少し調整してみます。収集する情報項目のタイトルが適切ではないので、タイトル部分をダブルクリックして修正していきます。

さらに見やすいホテルリストを作るために、データの再フォーマットも行いましょう。再フォーマットしたい情報項目のタイトル横にある「三点リーダー」をクリックします。

「データを再フォーマット」をクリックします。

「ステップを追加」をクリックします。

「置換」をクリックします。

置換フォーマットのページが表示されるので、各種項目を入力します。今回は「当サイトでは、この料金で予約できるのは残り」というテキストを検索文字列に入力し、置換文字列は空白のまま保存しました。

すると「当サイトでは、この料金で予約できるのは残り」のテキストが削除され、予約枠の情報項目では「○件です」とだけ表示されるようになります。「です」も余計なので、同じ手順で削除して「○件」とだけ表示されるように調整しました。最後に「保存」をクリックすれば、再フォーマットは完了です。

以上でWebスクレイピングの実行環境が整ったので、画面右上の「保存」実行」を順番にクリックします。

タスクの実行方法を選択する画面が表示されるので、任意の方法を選択します。今回はローカル抽出の「通常モード」を選択しました。抽出したホテルリストをクラウドに保存できるクラウド抽出は、有料プランでご利用いただけます。

今回は約700件分のホテルリストをわずか3分19秒で作成できました!Webスクレイピングが完了したらデータのエクスポートを選択し、「唯一データ」をクリックします。

最後にダウンロードしたいファイル形式を選択し、「はい」をクリックするとホテルリストがダウンロードされます。

こちらが体裁を整えたホテルリストです。

いかがでしょうか?Webスクレイピングを実行するプログラムをゼロから作りましたが、Octoparseがあればごく簡単に作ることができました。しかも、約700件分のホテルリストを3分19秒で作成できたので、手作業にかかる時間を圧倒的に短縮できます。
ダウンロードしたホテルリストはフィルタ機能を使って、評価順や価格の安い順に並べ替えたりして、条件にマッチした宿泊先を探してみましょう。
まとめ
旅行計画は楽しいものですが、Booking.comなどのサービスで宿泊先を1件ずつ確認するには時間がかかります。Octoparseを使ってホテルリストを作り、宿泊先情報を一気に取得してみてはいかがでしょうか?
Octoparseは無料で始められるので、「Webスクレイピングにちょっと興味がある」という方も安心してご利用いただけます。さらに1万レコード(1万行)のデータを無料で取得できるのでこの機会にぜひご登録・ご利用ください。
