【Node.js】Google Map検索を自動化してみた。
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
.env
の API_KEY には、GCPで取得したご自身のAPIキーを設定してください。
サンプルコードを実行
API_KEYを設定すれば動く状態になっていますので、実行してみます。
node .
正常に実行されると、 検索結果は ./search_result/yyyymmdd_hhmmss
フォルダ配下に出力されます。
出力された search-result.tsv
をGoogleSpreadSheetに貼り付けてみてください。
こんな感じで出力されるはずです。
カスタマイズ
上記のサンプル検索では
「浅草 ハンバーグ」で検索されたお店一覧から住所に「浅草」が入っているお店だけを表示しています。
なぜ住所でフィルタを行うかといいますと、そうしないと、浅草以外の情報も取れてしまうからです。
(浅草で検索してるのに、遠方の情報が出てきてもだるいのでこの処理を入れました。)
例えば「浅草 ハンバーグ」「浅草 カレー」「浅草 焼肉」で検索をしたい場合は下記のように search-*.txt
を用意します。
浅草
ハンバーグ
カレー
焼肉
そして node .
を実行すれば、浅草のハンバーグ、カレー、焼肉店の一覧をとってこれるわけです。
以上!また続きを書くかもです!
Author And Source
この問題について(【Node.js】Google Map検索を自動化してみた。), 我々は、より多くの情報をここで見つけました https://qiita.com/BlackMagician/items/17a108732cf24a1482ce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .