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

Monday, October 29, 2018 4:00 PM

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

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

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

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

レストラン名、評価、カテゴリ、住所、説明、時間などの詳細を取ります。

このチュートリアルでは次の内容についても説明します。

   · AJAXの処理

 

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

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

2) ページ遷移のループを作る - 複数のページからデータを取得する

3) 「Loop Item」を作る - 各リストのデータを取得する

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

5) 抽出タスクを始める - タスクの実行を行いデータを取得する

 

 

 

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


In this tutorial, the first step is a little different. We need to set "Browser" in "Settings" in order to open Google Maps correctly since the default browser cannot open Google Maps.このチュートリアルでは、最初の手順は少し異なります。 デフォルトのブラウザではGoogleマップを開くことができないため、Googleマップを正しく開くために「設定」に「ブラウザ」を設定する必要があります。

   · Advanced Modeの「+ Task」をクリックします。

     自由度の高い「Advanced mode」は、複雑なウェブサイトを対応できます。特にGoogleマップのような複雑な構造のサイトからデータを抽出するなら、Advanced modeを強くお勧めします。 

   · URLを「Extraction URL」ボックスに貼り付け、「Save URL」をクリックして移動します。

     デフォルトの内蔵ブラウザはGoogleマップと互換性がないから、互換性のあるブラウザに切り替える必要があります。

   · タスクを保存するには「Save」をクリックします。

     バージョン7では、設定を変更する前に、タスクを保存する必要があることに注意してください。

   · 「Settings」をクリックし、ブラウザを「Firefox 45.0」に変更して「Save」をクリックします。

 

 

 

 

2) ページ遷移のループを作る - 複数のページからデータを取得する 

   · Octoparseの右上隅にある「Workflow」ボタンを切り替えることで、「ワークフローモード」をオンにします。

 「ワークフローモード」をオンにして、タスクの手順をより正確に把握することを強くお勧めします。

   · 次へボタン「>」をクリックします。

   · 「Action Tips」の「Loop click Single Button」をクリックします。

   · 「Click to paginate」アクションに「AJAX Load」を設定します。

  GoogleマップはページネーションボタンにAJAX技術を適用します。したがって、「Click to paginate」ステップで「AJAX Load」を設定する必要があります。

     · 「Retry when page remains unchanged (use discreetly for AJAX loading)」をチェックしません。

     · 「Load the page with AJAX」をチェックして、AJAXタイムアウトを15秒に設定します。

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

ヒント!

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

· AJAXの扱い

 

 

 

 

 

 

 

3) 「Loop Item」を作る - 各リストのデータを取得する 

   · 「Go To Web Page」をクリックすると、最初のページに戻ります。  

複数ページにわたるデータを抽出する場合は、最初のページで「Loop Item」を作るほうがいいです。

   · 一番目と二番目のレストラン情報を選択します。

   · 「Action Tips」から「Extract data in the loop」をクリックします。

Octoparseは自動的に現在のページのすべてのレストラン情報を選択します。選択した部分は緑色で強調表示され、他のは赤色で強調表示されます。

ヒント!

必要なセクション全体が強調表示されるまで、セクションの上にマウスを移動します。

 

 

 

 

 

 

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

   · 不要なデータフィールドを削除します。

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

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

 

 

 

 

 

5) 抽出タスクを始める - タスクの実行を行いデータを取得する

   · 左上の「Start Extraction」をクリックします。

   · コンピュータでタスクを実行するには「Local Extraction」を選択し、クラウドでタスクを実行するには「Cloud Extraction」を選択します(有料版のみ)。

 

 

 

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

 

ヒント!

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

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

 

 

 

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

 

btn_sidebar_use.png