Googleマップから座標（緯度・経度）を取得する方法ご紹介

元記事：https://www.octoparse.jp/blog/how-to-extract-google-maps-coordinates/

「座標」の意味は点の位置を表すのに使ういくつかの数の組のことです。地球のどの場所でも座標（すなわち経度と緯度）を確認できます。先日[Googleマップのデータをスクレイピングする方法](https://www.octoparse.jp/blog/google-maps-crawlers/)を紹介して、この記事では、Googleマップで場所の緯度・経度の座標をすばやく抽出する方法を紹介します。

実際に、Googleマップの座標がURL内に隠されています。そのことに気付くのは難しいですね。この場合、まずはその場所のURLを抽出し、正規表現により座標を見つける必要があります。東京タワーを例として説明いたします。

まず、ブラウザでGoogleマップを開き、検索ボックスに「東京タワー」を入力し検索します。
![Tokyo tower.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/1458ac7c-7c2b-a8f3-d4ec-1ebd69f49d25.png)


ページの読み込みが完了したら、URLで座標を探します。座標は「**@**」記号の後ろにあります。
![@sign.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/1ca2747f-8272-9311-13f2-c405d2610d11.png)

次に、URLの抽出を始めます。今回使うツールは[Octoparse](https://www.octoparse.jp/)です。Octoparseは、特に初心者にとって直感的な操作画面で、使いやすい[Webスクレイピングツール](https://www.octoparse.jp/blog/the-10-best-web-scraping-tools/)です。

1.「+」記号をクリックして、カスタマイズモードで新しいタスクを作成します。
2. URLをボックスに入力します。
https://www.google.com/maps/place/%E6%9D%B1%E4%BA%AC%E3%82%BF%E3%83%AF%E3%83%BC/@35.6585848,139.7432442,17z/data=!3m1!4b1!4m5!3m4!1s0x60188bbd9009ec09:0x481a93f0d2a409dd!8m2!3d35.6585805!4d139.7454329?hl=ja
3.「URLを保存する」を押して続行します。

これで、新しいタスクが正常に作成されました。問題は、Googleマップが組み込みブラウザ内で読み込まれないことです。これはなぜでしょうか？これは、組み込みブラウザはGoogleマップと交換性がよくないためです。この問題を解決するには、ブラウザを変更する必要があります。Firefox 45.0に変更すれば、正常に読み込みます。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/a418d070-dd12-162c-3486-e5d25627b4fd.png)


Webページの読み込みが完了したら、組み込みのブラウザーでデータをクリックすると、「**操作ヒント**」パネルに選択可能なオプションが表示されます。「**選択した要素のテキストを抽出する**」を選択します。
![data extra.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/546702c8-257b-f8ab-01e1-6a0383527b98.png)

これで、抽出操作が正常に作成され、以下のワークフローに追加されたことに気付くはずです。右上の設定画面からフィールド名を編集できます。

設定画面に移動し、下部にある「**定義済みフィールドを追加する**」を見つけます。クリックしてドロップダウンメニューを表示し、「**現在ページの情報を追加する**」を選択して、「**ページURL**」を選択します。
![page URL.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/21b44c81-a8d6-c2bb-36ff-bbec7f0d1e23.png)

今、WebページのURLが正常にデータフィールドに追加されました。これから、URLフィールドを編集して余分な部分を取り除き、正確な座標を取得する必要があります。

![page data.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/27da90cd-23e3-cfbe-4f71-597ead772046.png)


下部の「**カスタマイズ**」アイコン（小さな鉛筆）をクリックし、「**抽出データを再フォーマットする**」を選択します。次に、「**ステップを追加する**」ボタンをクリックし、これにより、データ処理を行う機能リストが表示されます。この場合、「**正規表現でマッチする**」を選択し、下図の画面になります。

![RegEx tool.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/0b0ae4c8-0991-0f7a-ce4b-b32bdac91a99.png)

これで、正規表現を記述することにより、希望どおりにデータを編集することができます。正規表現とは、文字列内で文字の組み合わせを照合するために用いられるパターンです。ほとんどの人が式を書くのが難しいことを考えると、使いやすいRegExツールを組み込みました。「RegExツールを試す」ボタンをクリックします。

 

座標は「**@**」記号の後、2番目のコンマの前にあることを分かります。「**で始める**」にチェックを入れ、「**@**」を入力します。これは、「**@**」の後の部分が必要であることをRegExに伝えています。同じように、「**で終わる**」にチェックを入れ、「**,17z**」を入力します。「**@**」の後ろにコンマが2つあるため、どのコンマを使用するかを定義するほうが適切です。コンマの後ろに数字などを追加することで区別します。この場合、「**17z**」を追加します。これにより、RegExにコンマと「**17z**」の前の部分が必要であることがわかります。「**生成する**」ボタンをクリックすると、正規表現がボックスに表示されます。
![match data.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/09de218f-0101-4636-f72f-fa38bda949fa.png)


「**マッチする**」ボタンをクリックして、正しく設定されているかどうかを確認します。右側にマッチした結果が出てきます。次に、「**適用する**」をクリックしてから「**OK**」をクリックして確認します。

これで終わりました。さて、タスクを実行し、それが動作するかどうかを見てみましょう。「**抽出開始**」をクリックし、「**ローカル抽出**」を選択します。

![data output.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/e4e4a788-abb8-872a-d5a9-6456bec4bfd0.png)
 

できました！もし、1000個の場所を調べる場合は？Octoparseでは、タスクを設定するときに10,000以上のURLを入力できます。すごく簡単でしょう！皆さんもお試しください！