Airbnbから部屋の情報をスクレイピングする

2019年10月12日

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

このチュートリアルでは次のURLを例として説明します。
https://www.airbnb.com/s/New-York--NY--United-States/homes?refinement_paths%5B%5D=%2Fhomes&checkin=2018-12-01&checkout=2018-12-02&adults=2&children=1&query=New%20York%2C%20NY%2C%20United%20States&allow_override%5B%5D=&map_toggle=false&s_tag=A2EV74MC

 

 

ヒント! 

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

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

 

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

 

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

2) 「スクロールダウン」- すべての内容を読み込む

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

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

5) 「XPathを変更する」 - データ精度を向上させる

6) 「データカスタマイズ」 - データを再フォーマットする

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

 

 

 

 

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

  • カスタマイズモードの「+ タスク」をクリックし、新規タスクを作ります。
  • URLを「Webサイト」ボックスに貼り付け、「URLを保存する」をクリックして移動します。

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

 webページを開く

 

 

 

2) 「スクロールダウン」- すべての内容を読み込む 

Airbnb.comのようなサイトでは、ページネーションのボタンがなく、全てのコンテンツを読み込むには、ページを連続して下にスクロールする必要があります。

  • 「スクロールダウン」で「読み込み完了後、スクロールダウンを設定する」にチェックを入れます。
  • スクロールの「回数」と「間隔」を設定します。
  • 「スクロール方法」で「ページの最後までスクロール」を選択します。

スクロールダウンを設定する

ヒント!

Octoparseで無限のスクロールを処理する方法の詳細については、次を参照してください。

· 無限スクロールでの読み込み 

 

 

 

 

 

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

  • 一番目のホテル名をクリックすると、Octoparseは同じページに残るホテル名を自動的に識別します。
  • 「各要素をループクリックする」を選択します。

そうすると、一番目のホテルの詳細ページに入ります。

ループアイテム-を作成する

ヒント!

上で述べたように、Octoparseが十分な回数スクロールして読み込まれたリストを取得できるようにするには、ループモードとXPathを変更する必要があります。ステップ5で処理方法をご覧ください。

 

 

 

 

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

  • 必要なデータをクリックします。「操作ヒント」から「選択した要素のテキストを抽出する」を選択します。

データを抽出する

 

  • 必要に応じて、フィールド名を編集します。

フィールド名

ヒント!

「スターランキング」を抽出する時、「選択した要素の外部HTMLを抽出する」を選択してください。正規表現で処理する必要があるからです。それがステップ6で行われます。

 

 

 

 

 

 

5) 「XPathを変更する」 - データの精度を向上させる

「ループクリック」をチェックすると、Octoparseは「固定リスト」のループモードを生成します。「固定リスト」は、一定量の要素を扱うために使用されます。ただし、Airbnb.com上のコンテンツの数は固定ではなく、スクロールダウンすると増加するのです。全ての内容を取得できるようにするには、ループモードを「変数リスト」に変更し、適切なXPathを入力する必要があります。

  • 「ループアイテム」ボックスを選択します。
  • 「変数リスト」を選択し、次のXPath式をを入力します。

//div[@class="_fhph4u"]/div//div[@class="_v72lrv"]//a

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

xpathを変更する

ヒント!

1. 「固定リスト」および「変数リスト」は、Octoparseのループモードです。Octoparseのループモードの詳細については:

· Octoparseに5種類のループモード 

2. XPathとその生成方法の詳細については:

· XPathで要素を見つける 

 

 

 

 

 

6)「データカスタマイズ」 - データを再フォーマットする 

目標データがWebページにテキストとして表示されていない場合は、まずソースコード(HTML)を抽出し、再フォーマットする必要があります。

  • 「Rating」を選択し、「データフィールドをカスタマイズする」modify.pngをクリックします。
  • 「抽出データを再フォーマットする」、「ステップを追加する」、「正規表現でマッチする」を順番に選択します。
  • 「RegExツールを試す」を選択します。
  • 「で始める」ボックスをチェックし、「Rated」と入力します。
  • 「で終わる」ボックスをチェックし、「out」と入力します。
  • 「生成する」と「マッチする」をクリックします。
  • 「適用する」をクリックし、「OK」をクリックします。
  • 「OK」をクリックして保存します。

 

データカスタマイズ

 

ヒント!

Octoparseは8つのデータ再フォーマットオプションを提供します。抽出されたデータをさらに処理できます。正規表現を使ってデータを再フォーマットする方法の詳細は次を参照してください。

· 取得したデータを再フォーマットする

 

 

 

 

 

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

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

ここにサンプルデータがあります。「Rating」に空白のフィールドがいくつか表示されます。これは、一部の詳細ページにホテルの評価がないためです。

 サンプル出力

ヒント!

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

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

 

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

 

btn_sidebar_use.png
btn_sidebar_form.png