Bookingからホテルの情報をスクレイピングする

2019年10月12日

世界観光機関(UNWTO)によると、2017年の世界の観光客の総数は、前年と比べ7%増加して約13億2,220万人を果たしました。旅行業の発展に伴い、Booking.com、TripAdvisor.com、Airbnb.comなど世界のオンライン旅行代理店が急速に上場し、これまで以上に簡単にホテル、航空券の情報を入手できます。

このチュートリアルでは、WebスクレイピングツールOctoparseを使って、Booking.comからホテルの情報をスクレイピングする方法を説明します。

次のURLを例として使います。

https://www.booking.com/searchresults.en-gb.html?label=gen173nr-1FCAEoggJCAlhYSDNYBGgxiAEBmAEuwgEDYWJuyAEO2AEB6AEB-AELkgIBeagCBA&sid=1964712b1d001062109ae5baf669fd26&checkin_month=12&checkin_monthday=1&checkin_year=2018&checkout_month=12&checkout_monthday=2&checkout_year=2018&class_interval=1&dest_id=20088325&dest_type=city&dtdisc=0&from_sf=1&group_adults=1&group_children=0&inac=0&index_postcard=0&label_click=undef&no_rooms=1&offset=0&postcard=0&raw_dest_type=city&room1=A&sb_price_type=total&src=index&src_elem=sb&ss=New%20York&ss_all=0&ssb=empty&sshis=0&ssne=New%20York&ssne_untouched=New%20York&selected_currency=USD&changed_currency=1&top_currency=1&nflt=

 

ヒント!

1. 検索条件を絞ったURLをOctoparseに入力することを強くお勧めします。

2. Booking.comの構成と表示は、所在地のIPと優先言語によって異なる場合があります。

 

以下はチュートリアルの主な手順です。 [デモファイルをダウンロードする ]

1)「Webページを開く」 - 対象のWebページを開く

2)「ページネーション」 - 複数のページからデータを取得する

3)「ループアイテム」 - 詳細ページからデータを取得する

4)「データを抽出する」 - 抽出したいデータを選択する

5)「抽出開始」 - データ取得のタスクを実行する

 

 

 

 

1) 「Webページを開く」 - 対象のWebページを開く

  • カスタマイズモードの「+ タスク」をクリックし、新規タスクを作ります。

  • URLを「Webサイト」ボックスに貼り付け、「URLを保存する」をクリックして移動します。

そうすると、ページが内蔵ブラウザで開られます。

 

 

 

 

 

2) 「ページネーション」 - 複数のページからデータを取得する

  •  ページ読み込み後、ページを下部にスクロールし、次のページボタン「>」をクリックします。
  • 「操作ヒント」から「選択したリンクをループクリップする」をクリックします。

そうすると、2番目のページに入っています。

 

 

 

  

3)「ループアイテム」 - 詳細ページからデータを取得する

  • 今は2番目のページですから、念の為に、「Webページを開く」、「ページネーション」をクリックして1番目に戻ります。
  • 一番目のホテル名をクリックすると、Octoparseは同じページに残るホテル名を自動的に識別します。識別できない場合は、二番目のホテル名もクリックします。
  • 「操作ヒント」にある「すべて選択」をクリックします。
  • 「各要素をループクリックする」をクリックします。

そうすると、ループアイテムが自動作成されます。

 

他のページに移動してワークフローが正しいかどうかを確認すると、「このXPathを使用している要素が見つかりません」というメッセージが表示される場合があります。 この場合、要素を見つける精度を向上させるために、XPathを変更することをお勧めします。

  • 「ループアイテム」ボックスをクリックします。
  • 「変数リスト」を選択します。
  • 以下の変更されたXPathを「変数リスト」のテキストボックスに入力します。

//a[@class='hotel_name_link url'] 

  • 「OK」をクリックして保存します

 xpathを変更する

 

 

 

 

4)「データを抽出する」 - 抽出したいデータを選択する

  • 「ループクリックする」をクリックすると、Octoparseは最初のホテルの詳細ページを開きます。
  • ページ上で必要なデータをクリックして、データを抽出します。テキストを抽出するには、「操作ヒント」から「選択した要素のテキストを抽出する」を選択します。画像URLを抽出するには、「操作ヒント」から「選択した画像のURLを抽出する」を選択します。
  • 必要に応じて、フィールド名を編集します。

 

 

 

 

5)「抽出開始」 - データ取得のタスクを実行する

  • 左上の「保存する」、をクリックします。「抽出開始」をクリックします。
  • 「ローカル抽出」または「クラウド抽出」(有料版のみ)を選択します。

ここにサンプルデータがあります。「Hotel_Image_1」列と「All_Rooms_Include」列に空白のフィールドがいくつか表示されます。これは、一部の詳細ページにホテルのイメージや客室設備の情報が含まれていないためです。

 

 

ヒント!

デフォルトでOctoparseがページ上で定義されたパターンの要素を見つけられない場合、フィールドは空白のままになります。しかしOctoparseは必要な要素がWebサイトに表示されていても、定義されたパターンの要素を見つけられないこともあります。この問題が発生した場合は、以下のチュートリアルをご参考ください。

· 空白のフィールドを抽出したら何をすべきか? 

 

 

 

この記事は役に立ちましたか?もしご不明な点がございましたら、いつでもお問い合わせください!

btn_sidebar_use.png
btn_sidebar_form.png