Bookingからホテルの情報をスクレイピングする
フォローする
世界観光機関(UNWTO)によると、2017年の世界の観光客の総数は、前年と比べ7%増加して約13億2,220万人を果たしました。旅行業の発展に伴い、Booking.com、TripAdvisor.com、Airbnb.comなど世界のオンライン旅行代理店が急速に上場し、これまで以上に簡単にホテル、航空券の情報を入手できます。
このチュートリアルでは、WebスクレイピングツールOctoparseを使って、Booking.comからホテルの情報をスクレイピングする方法を説明します。
次のURLを例として使います。
ヒント! 1. 検索条件を絞ったURLをOctoparseに入力することを強くお勧めします。 2. Booking.comの構成と表示は、所在地のIPと優先言語によって異なる場合があります。 |
以下はチュートリアルの主な手順です。 [デモファイルをダウンロードする ]
2)「ページネーション」 - 複数のページからデータを取得する
1) 「Webページを開く」 - 対象のWebページを開く
- カスタマイズモードの「+ タスク」をクリックし、新規タスクを作ります。
- URLを「Webサイト」ボックスに貼り付け、「URLを保存する」をクリックして移動します。
そうすると、ページが内蔵ブラウザで開られます。
2) 「ページネーション」 - 複数のページからデータを取得する
- ページ読み込み後、ページを下部にスクロールし、次のページボタン「>」をクリックします。
- 「操作ヒント」から「選択したリンクをループクリップする」をクリックします。
そうすると、2番目のページに入っています。
3)「ループアイテム」 - 詳細ページからデータを取得する
- 今は2番目のページですから、念の為に、「Webページを開く」、「ページネーション」をクリックして1番目に戻ります。
- 一番目のホテル名をクリックすると、Octoparseは同じページに残るホテル名を自動的に識別します。識別できない場合は、二番目のホテル名もクリックします。
- 「操作ヒント」にある「すべて選択」をクリックします。
- 「各要素をループクリックする」をクリックします。
そうすると、ループアイテムが自動作成されます。
他のページに移動してワークフローが正しいかどうかを確認すると、「このXPathを使用している要素が見つかりません」というメッセージが表示される場合があります。 この場合、要素を見つける精度を向上させるために、XPathを変更することをお勧めします。
- 「ループアイテム」ボックスをクリックします。
- 「変数リスト」を選択します。
- 以下の変更されたXPathを「変数リスト」のテキストボックスに入力します。
//a[@class='hotel_name_link url']
- 「OK」をクリックして保存します
4)「データを抽出する」 - 抽出したいデータを選択する
- 「ループクリックする」をクリックすると、Octoparseは最初のホテルの詳細ページを開きます。
- ページ上で必要なデータをクリックして、データを抽出します。テキストを抽出するには、「操作ヒント」から「選択した要素のテキストを抽出する」を選択します。画像URLを抽出するには、「操作ヒント」から「選択した画像のURLを抽出する」を選択します。
- 必要に応じて、フィールド名を編集します。
5)「抽出開始」 - データ取得のタスクを実行する
- 左上の「保存する」、をクリックします。「抽出開始」をクリックします。
- 「ローカル抽出」または「クラウド抽出」(有料版のみ)を選択します。
ここにサンプルデータがあります。「Hotel_Image_1」列と「All_Rooms_Include」列に空白のフィールドがいくつか表示されます。これは、一部の詳細ページにホテルのイメージや客室設備の情報が含まれていないためです。
ヒント! デフォルトでOctoparseがページ上で定義されたパターンの要素を見つけられない場合、フィールドは空白のままになります。しかしOctoparseは必要な要素がWebサイトに表示されていても、定義されたパターンの要素を見つけられないこともあります。この問題が発生した場合は、以下のチュートリアルをご参考ください。 |
From: https://www.octoparse.jp/tutorial/scrape-hotel-data-from-booking/