25
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PythonでGoogle Places API使ってデータ取得してみた

Last updated at Posted at 2019-02-18

概要

Pythonを使用してGoogle Places APIのデータを取得した忘備録です。
APIでデータ取り出すだけならJSとかで問題ないんですが、その後データをこねこねしたかったのでPythonで取得しました。(結局使わなかったけど)

公式ドキュメント等

Google Developers Places API (Googleドキュメント)
google-maps-services-python (PythonクライアントのGit)
Python Client for Google Maps Services (Pythonライブラリドキュメント)

1. Google Place APIを使えるようにする

GCPのプロジェクト作成~API有効までの手順は以下のブログを参考にさせていただきました。
Google Places APIで会社付近の「お食事処」を取得してみる

GCPはAPIの無料枠があるのでそれを使用します。(クレジットカードの登録が必要です)
また、APIキーのアクセス制限では、「リクエストを受け入れるサーバーIPアドレス」に自身のIPアドレスを設定するなどしておくと安全です。
キー盗まれてXX万円請求くるとか話聞くので・・・。

2.APIリクエストを送ってデータ取得

Pythonクライアントのライブラリを以下コマンドでインストールします。

$ pip install -U googlemaps

以下はファイルの内容です。
「東京渋谷駅」で位置情報を検索して、その位置から半径200m以内のレストランの情報を取得します。

main.py

import googlemaps
import pprint # list型やdict型を見やすくprintするライブラリ

key = 'Your API' # 上記で作成したAPIキーを入れる
client = googlemaps.Client(key) #インスタンス生成

geocode_result = client.geocode('東京都渋谷駅') # 位置情報を検索
loc = geocode_result[0]['geometry']['location'] # 軽度・緯度の情報のみ取り出す
place_result = client.places_nearby(location=loc, radius=200, type='food') #半径200m以内のレストランの情報を取得
pprint.pprint(place_result)

実行結果

上記ファイルを実行するとコンソールにレストランの情報一覧が表示されます。

おしまい!

最後に

レビューデータを大量に欲しかったんですが、ドキュメントみると
reviews[] a JSON array of up to five reviews.
とあり、取得制限があったので諦めました。笑
Twitter APIでも取得制限で苦しめられた覚えがあります。。。
何かいい方法があったら教えてください。
また、記事に間違いや不明な点があれば遠慮なくご指摘ください。

25
19
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?