3
3

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 3 years have passed since last update.

【Node.js】Google Map検索を自動化してみた。

Last updated at Posted at 2021-09-25

Google Map に存在するデータを検索用のキーワードで検索して、取得結果を一覧化するツールを作ってみました。

例えば
Google Map で
渋谷 マッサージ
道玄坂 マッサージ
恵比寿 マッサージ
代々木 マッサージ
といったキーワードでお店を検索し、検索結果を一覧化する作業を行っていたとしたら
とてもピッタリなツールではないかと思います。

作成の背景

今月から入社したスタートアップの出来立ての事業でWeb広告に関する営業をまずはテレアポで行うことになったのですが、
私がチームに入るまでリストの作成を手で行っていたので、自動化を試みました。

最初はPythonかGASとかでスクレイピングがいいのかなと思っていましたが、
Google Maps Platform を使えば一瞬でできました。✌

想定ユーザー

  • GoogleMap検索で取得した結果から営業先リストを作っている方。

ですが、そのほかにもこんな要望がある方にも使っていただけるツールです。

  • Google Map のレビューの高いお店から明日のディナー先を決めたい方
    奥さんが明日のディナー先を探していたので、「場所 食べたいもの」で検索してあげたら、100件近く情報を取得できてしまい、結局選びづらいという実績を得ました。でも、まあ、工夫次第で改良は可能だと感じました。

事前準備

  • Node.jsがインストール済みであること
  • Google Cloud Platform(GCP) のアカウントを持っていること
  • GCPのアカウントはクレジットカード情報を登録して、課金可能になっていること
     ※お金がかかるわけではありません。かからないように予算を設定すれば大丈夫です
  • Places APIが有効化されていること
  • GCPからAPIキーを発行済みであること

ソースコード

こちらにあります → Github map-api-create-sales-list-in-nodejs

インストール

上記リポジトリのreadme.mdにも書いていますが、次のコマンドを実行していきます。

git clone https://github.com/paths-are/map-api-create-sales-list-in-nodejs.git
cd map-api-create-sales-list-in-nodejs
npm install
cp .env.sample .env
cp search-areas_sample.txt search-areas.txt
cp search-keywords_sample.txt search-keywords.txt
cp search-filters_sample.txt search-filters.txt
mkdir search_result

.envAPI_KEY には、GCPで取得したご自身のAPIキーを設定してください。

サンプルコードを実行

API_KEYを設定すれば動く状態になっていますので、実行してみます。

node .

正常に実行されると、 検索結果は ./search_result/yyyymmdd_hhmmss フォルダ配下に出力されます。
出力された search-result.tsv をGoogleSpreadSheetに貼り付けてみてください。
こんな感じで出力されるはずです。

image.png

カスタマイズ

上記のサンプル検索では
「浅草 ハンバーグ」で検索されたお店一覧から住所に「浅草」が入っているお店だけを表示しています。
なぜ住所でフィルタを行うかといいますと、そうしないと、浅草以外の情報も取れてしまうからです。
(浅草で検索してるのに、遠方の情報が出てきてもだるいのでこの処理を入れました。)

例えば「浅草 ハンバーグ」「浅草 カレー」「浅草 焼肉」で検索をしたい場合は下記のように search-*.txt を用意します。

search-areas.txt
浅草
search-keywords.txt
ハンバーグ
カレー
焼肉

そして node . を実行すれば、浅草のハンバーグ、カレー、焼肉店の一覧をとってこれるわけです。

以上!また続きを書くかもです!

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?