🗺

SerpApiでGoogle Map上のお店のレビューを取得してみた

2022/10/20に公開

はじめに

Google Place API 調べると、Google Map 上のお店のレビューは なぜか 5 件までしか取れません。
プレイス ライブラリ  |  Maps JavaScript API  |  Google Developers
もっと取る方法ないか調べると、Stack Overflow でSerpApiってのを見つけました。
To get more than 5 reviews from google places API - Stack Overflow
Stack Overflow で宣伝してて草です。Disclaimer 書いてて好感持てました。
無料枠もあったので、使ってみることにしました。

SerpApi

公式サイトによると、サーチエンジンをスクレイプする API だそうです。Google メインですが、Yahoo とかもありました。

Scrape Google and other search engines from our fast, easy, and complete API.

結構、いろんな大手企業に使われてそうです。すごい。

価格の相場がよくわかりませんが、無料枠も適度にあります。1アクセス 1 セントくらい。

サインアップ

サインアップするとこんな画面が出てくる。確認メールが来るのでクリックしたら verified される。

API とトークン

トークンはここから取得できます。

ほぼコピペ。token 部分だけ、環境変数から取ってくるようにしました。

いろんな API とそれに対応する説明・コード・JSON Example が書かれてます。
かなりたくさんサンプルコードがあります。

コード

ほぼコピペだけど、Google Map 上のレビューを取ってくる API はこんな感じです。トークンだけ環境変数で取ってきました。

data_idは SerpApi 上の ID みたいで SerpApi のGoogle Maps APIから取得できます。

const SerpApi = require("google-search-results-nodejs");
const search = new SerpApi.GoogleSearch(process.env.API_KEY);

const params = {
  engine: "google_maps_reviews",
  data_id: "0x89c259af336b3341:0xa4969e07ce3108de",
};

const callback = function (data) {
  console.log(data["reviews"]);
};

// Show result as JSON
search.json(params, callback);

こんな感じで環境変数を設定して実行します。

API_KEY="環境変数" node index.js

おわりに

Google の情報って API になかったら、取得できない気がしてましたが、こういうサービスもあるんですね。これも一つのエコシステムなんですかね。Google API もうちょい頑張ってくれよって気もしますが・・・。

GitHubで編集を提案

Discussion