node.jsでgoogle画像検索APIを使って、テスト用の画像を取得してみる


ちょっとディープラーニングしたいな〜と。
……そう思ったんですが、教師データを集めるのがめんどくさいという事実が。
なので、Node.jsとgoogle画像検索を使用して必要な画像データを集めてみました。

制作物

個人的にはダウンロード処理が上手く作れたんじゃないかと思います
Promise.allを使うと一つ遅い処理があると後続が詰まってしまうので、そこに気をつけてみたり。

カスタム検索の作成

まずはGoogleアカウントにログインして、ここにアクセスしましょう。
Addから新しく検索エンジンを追加しましょう!

言語は日本語にして、以下のように入力して作成します。
サイトは後で削除するので実はなんでもいいです。

カスタム検索の設定

作成まで出来たので、次は設定を。
検索エンジンIDは後ほど使用するので、メモしておきましょう。
設定から画像検索をONにします。

検索するサイトを削除し、ウェブ全体を検索するようにします。
プログラム的なアクセスをできるように「使ってみる」を押します。

「GET A KEY」を押下。
Google Cloud Platformのプロジェクトを選択してあげればAPI用のKeyが出てくるので、どこかにメモしておきましょう。

プログラムの実装!

ページのTOPにリポジトリは記載したので、検索する部分だけ抜粋を!

index.js
const { google } = require('googleapis');
const customSearch = google.customsearch('v1');

const result = await customSearch.cse.list({
  cx: CSE_ID,
  q: SEARCH_KEYWORD,
  auth: API_KEY,
  searchType: 'image',
  safe: 'high',
  num: searchNum, // max:10
  start: startIndex + 1,
});

CSE_IDには検索エンジンIDを、API KEYにはAPI用のKEYが来るようにしてあげて下さい。
これでGoogle画像検索の結果が帰ってきます

実行結果

node index.js 猫 20

これでDL用の画像を集めてみよう