LoginSignup
1
2

More than 1 year has passed since last update.

【Python】商圏分析のためにYahooローカルサーチAPIから周辺店舗情報を取得してみた

Last updated at Posted at 2021-11-16

初めに

商圏分析ために、周辺店舗情報をAPIにて取得する。Google Maps PlatformのPlaceAPIでも同じことはできそうだが、無料で試せるYOLPにて取得してみた。
Yahoo!ローカルサーチAPI を使用し、中心位置を指定して円範囲で絞り込む。

リファレンスより引用
Yahoo!ローカルサーチAPI(以下、ローカルサーチAPI)は、店舗、イベント、クチコミ情報などの地域・拠点情報(POI)を検索するためのAPIです。
検索対象は、全国の店舗を網羅した電話帳データおよび店舗オーナーなどからの投稿データです。

環境

-Windows10
-Python 3.9.8

パラメータ

  • appid => Yahooデベロッパー登録をし、取得する
  • lat => 中心緯度(世界測地系)
  • lon => 中心経度(世界測地系)
  • output => 出力形式を指定(json/xml)
  • date =>日時を指定(YYYYMMDDHHMI形式)
  • distance => 中心からの距離(km)
  • sort =>さまざまなパラメータにより算出した適合度順/距離(hybrid/geo)
  • gc => 業種コード。今回は01「グルメ」にて取得。

本コードではyahoo_url.formatにてパラメータをセットしてください。

仕様による条件

  • 検索距離は、最大20km
  • 1回の取得件数は、最大100件
  • 1条件の取得件数は、最大3000件(初期値を指定し取得する必要がある)今回のプログラムでは未対応

コード

yahoo_location_api.py
# -*- coding:utf-8 -*-
import requests
import json

# Yahoo weather APIにて気象情報を取得する
yahoo_url = "https://map.yahooapis.jp/search/local/V1/localSearch?appid={appid}&lat={lat}&lon={lon}&dist={distance}&output={output}&sort={sort}&gc={gc}&start={start}"
yahoo_url = yahoo_url.format(appid="xxxxxxxxxxxxxxxxxxx",
                             lat="34.000000", lon="135.00000000", output="json", distance="5", sort="geo", gc="01")
# distance=km,gc=業種コード

yahoo_json = requests.get(yahoo_url).json()
print(yahoo_json)

終わりに

他にもいろんな条件を指定できるので、リファレンスを調べてみてください。
また業務で使用する際は、使用許諾等を確認する必要があります。(ガイドライン等

諸注意が必要なものの、ぐるなびやゼンリン、電話帳データが無料で使用できるのは非常にありがたいことです。今後もこのAPIを使っていろんなことをしてみたいと思います。

参考

Google Maps Platformの方が掲載数が多そうですが、利用許諾の範囲が狭く、下記のようなGoogle Maps API 利用規約の遵守が必要です。

一部抜粋
10.5 知的財産権に対する制限
d.コンテンツをキャッシュ保存または保管しない。
本サービス以外で使用するコンテンツをプリフェッチ、キャッシュに保存、インデックス登録、または保管しないものとします。

10.4 本サービスおよびコンテンツの不正利用に対する制限
d.お客様の Maps API 実装に対する制限
Google マップを表示せずに本コンテンツを使用しない。Maps API ドキュメントで明示的に許可されていない限り、対応する Google マップなしでは Maps API 実装で本コンテンツを使用しないものとします。

つまり、CSV等での保存ができない。Google Map以外の地図と組み合わせての分析ができない。
などの制限があると言うことです。
Excelでリストを作ったり、GISでの分析ができないため、使用には注意が必要です。

参考サイト

1
2
0

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
1
2