すべてのコレクション
応用例
観光
Tripadvisorからホテルの情報をスクレイピングする
Tripadvisorからホテルの情報をスクレイピングする
一週間前以上前にアップデートされました

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

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

ホテルの詳細ページに入り、ホテルのタイトル、住所、価格、評価を取得しようと思います。

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

]

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

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

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

Tripadvisorのクッキー設定のため、Octoparseで条件を設定する必要があります。

  • Octoparseのブラウザで「Check-in」の日付を選択し、「操作ヒント」の「要素をクリックする」をクリックします。

  • アクションを繰り返して、「Check-out」の日付と「Guest Information」を設定します。

今、必要な結果ページになります。

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

  • ページ読み込み後、ページを下部にスクロールし、「Next」ボタンをクリックします。

  • 「操作ヒント」から「次のページをループクリップする」をクリックします。

TripAdvisorがAJAXでコンテンツを読み込むから、「ページネーション」アクション用にAJAXを設定する必要があります。

  • 「再試行」のチェックを外します。

  • 「AJAX読み込み」にチェックを入れ、「AJAXタイムアウト」を設定します。

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

  • 今は2番目のページですから、念の為に、「Webページを開く」、「ページネーション」をクリックして1番目に戻ります。

  • 3つの「アイテムをクリックする」アクションを削除します。

Octoparseは保存されたクッキーをwebサイトに送信し、Tripadvisorがすでにさっきの操作を覚えたから、これらのアクションを削除しても結果ページを直接開くことができます。

これから「ループアイテム」を作ります。

  • 一番目のホテル名をクリックすると、Octoparseは同じページに残るホテル名を自動的に識別します。識別できない場合は、二番目のホテル名もクリックします。

  • 「操作ヒント」にある「すべて選択」をクリックします。

  • 「各要素をループクリックする」をクリックします。

そうすると、ループアイテムが自動作成され、一番目の詳細ページに入ります。

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

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

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

ヒント!

ホテルの評価をクリックすると、「選択した要素の外部HTMLを抽出する」を選択します。抽出されたデータは、正規表現でさらに処理する必要があります。ステップ5で処理方法をご覧ください。

5) 「データカスタマイズ」 - データを再フォーマットする(オプション)

目標データがWebページに表示可能なテキストとして表示されていない場合は、まずソースコード(HTML)を抽出し、抽出したソースコードを必要な形式に処理する必要があります。

  • 「スターランキング」を選択し、「データフィールドをカスタマイズする」

    をクリックします。

  • 「抽出データを再フォーマットする」、「ステップを追加する」、「正規表現でマッチする」を順番に選択します。

  • 「RegExツールを試す」を選択します。

  • 「で始める」に「ui_bubble_rating bubble_」を入力、「で終わる」に 「"」を入力、「生成する」をクリックしてから「マッチする」をクリックすると、「マッチ結果」フィールドに結果が表示されます。

  • 「適用する」と「OK」をクリックします。

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

  • 左上の「保存する」、をクリックします。「抽出開始」をクリックします。

  • 「ローカル抽出」または「クラウド抽出」(有料版のみ)を選択します。

ここにサンプルデータがあります。

こちらの回答で解決しましたか?