Googleマップからレストランの情報を取得する

2019年10月12日

旅を出る時Googleマップを使ったことがありますか?220 の国と地域を広くカバーする地図と数億のお店や場所に関する詳しい情報を見えるし、リアルタイムの GPS ナビ、渋滞状況、乗換案内のほか、地元のグルメやイベントに関する情報を、世界中どこでも利用できます。

このチュートリアルでは、Googleマップでレストラン情報をスクレイピングする方法を説明します。

チュートリアルで次のURLを使用します。

https://www.google.com/maps/search/restaurants/@33.7726566,-117.8522727,13z/data=!3m1!4b1 

 

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

1) 「Webページを開く」- 内蔵ブラウザで対象のWebページを開く

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

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

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

 

 

 

1) 「Webページを開く」- 内蔵ブラウザで対象のWebページを開く

このチュートリアルでは、最初の手順は少し異なります。 デフォルトのブラウザではGoogleマップを開くことができないため、Googleマップを正しく開くために「設定」に「ブラウザ」を設定する必要があります。

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

デフォルトの内蔵ブラウザはGoogleマップと互換性がないから、互換性のあるブラウザに切り替える必要があります。設定を変更する前に、タスクを保存する必要があることに注意してください。

  • タスクを保存するには「保存する」をクリックします。
  • 「設定」をクリックし、ブラウザを「Firefox 45.0」に変更して「保存」をクリックします。

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

webページを開く

 

 

 

 

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

  • ページ読み込み後、次へボタン「>」をクリックします。
  • 「操作ヒント」から「単一ボタンをループクリップする」をクリックします。

GoogleマップはページネーションボタンにAJAX技術を適用していますから、「次のページをクリックする」ステップで「AJAX読み込み」を設定する必要があります。

  • 「再試行」のチェックを外れます。
  • 「AJAXでページを読み込む」にチェックを入れ、AJAXタイムアウトを15秒に設定します。
  • 「保存する」をクリックして保存します。

ページ遷移のループを作る

 

ループアイテム-を作る

 

 

ヒント!

AJAXの詳細については、以下の記事をご参考ください。

· AJAXの扱い

 
  • チェックした結果、 ページネーションのXpathは間違いました。「単一要素」に正しいXpathを入力します。
    //button[contains(@jsaction,"next")][not(@disabled)]

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

 

 

 

 

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

  • 今は2番目のページですから、念の為に、「Webページを開く」、「ページネーション」をクリックして1番目に戻ります。  
  • 一番目と二番目のレストラン情報を選択し、Octoparseは自動的に現在のページのすべてのレストラン情報を選択します。
  • 「操作ヒント」から「選択した要素のテキストを抽出する」をクリックします。
  • 必要なデータをクリックし、「操作ヒント」にある「選択した要素のテキストを抽出する」を選択します。
データを抽出する

 

 

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

 4フィールド名を編集

ヒント!

必要なセクション全体が強調表示されるまで、セクションの上にマウスを移動します。または「操作ヒント」にある拡大ボタンをクリックしてください。

 

 

 

 

 

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

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

 

 抽出タスクを始める

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

サンプル出力

 

ヒント!

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

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

 

 

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

 

btn_sidebar_use.png
btn_sidebar_form.png