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) 「Webページを開く対象-のWebページを開く」

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

3) 「ループアイテムを作る - 各リストのデータを取得する

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

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

 

 

 

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


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

   · アドバンストモードの「+タスク」をクリックします。

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

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

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

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

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

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

 

 

 

 

 

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

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

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

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

   · 「操作ヒント」の「単一ボタンをループクリップする」をクリックします。

   · 「次のページをクリックする」アクションに「AJAX読み取り」を設定します。

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

     · 「ページに変更がない場合は再試行する(AJAX読み込みには慎重にお使いください)」をチェックしません。

     · 「AJAXでページを読み込む」をチェックして、AJAXタイムアウトを15秒に設定します。

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

ヒント!

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

· AJAXの扱い

 

 

 

 

 

 

 

3) 「ループアイテム」を作る - 各リストのデータを取得する 

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

複数ページにわたるデータを抽出する場合は、最初のページで「ループアイテム」を作るほうがいいです。

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

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

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

ヒント!

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

 

 

 

 

 

 

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

   · 抽出したいデータを選択して赤色で強調表示されます。

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

 

 

 

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

 

 

 

 

 

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

   · 左上の「抽出開始」をクリックします。

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

 

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

 

ヒント!

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

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

 

 

 

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

 

btn_sidebar_use.png
btn_sidebar_form.png