google custom search apiを使ってデータを収集する方法

1.概要

検索エンジンに自動アクセスするプログラム(クローラー、スクレイピング)を作って、 猫の画像など特定のデータを沢山集めたい、と言う要望は昔からありました。そのため、 先達たちが様々なプログラムやツールを公開してくれており、今でも検索すればそれらの プログラムやツールを沢山見つける事ができます。

しかし、
・検索エンジンのAPIの仕様を変更した
・検索エンジンがAPIの提供を中止した
・検索エンジンが連続アクセスを防止するようになった
・プログラミング言語のVersionUPによりモジュールが使えなくなった
・モジュールが仕様変更して使い方が変わった

などなどにより、過去に書かれたプログラムは大半が動かなくなってしまっており、その動かなくなった原因を特定する事はプログラムのエラーではなく、上記のような歴史的経緯が絡んでいるため、初心者には至難の業です。

更に、本格的な人工知能研究者には学習用画像として様々なオープンデータが提供されるようにもなったため、クローラーのニーズそのものも薄れつつあり、過去のプログラムを誰か親切なベテランが更新してくれる事もあまり期待できません。

しかし、オープンデータは巨大すぎますし、用途が限定されていたり、自分が欲しい特定のデータが必ずしも豊富に用意されているとは限りません。

そのため、インターネットから自分が欲しいデータを正攻法でクローリングして取得する、現時点でも完全に動作する手段はニーズがあるかと思い、本ページに方法をまとめます。

2.全体的な流れ

2018年7月現在、問題なく動作するGoogleのCustom Search APIを使います。本ページではGoogleのCustom Search APIのセットアップ方法を説明します。

全体的な流れは下記です。

(1)Googleのアカウントを取得する
Gmailを持っていれば既に取得していますが、Google アカウント登録ページから新規に取得する事もできます。

(2)上記のアカウントにクレジットカード情報を登録する
少し抵抗感があるかもしれませんが、Googleに限らず、最近のWebサービスは利用開始時に支払いが発生しない見込みでも本人確認の意味を含めてクレジットカード登録を求められる事が多いです。

クレジットカード情報はGoogleお支払いセンターから登録できます。

(3)Google APIsでCustom Search APIの利用登録とAPIキーの取得

Googleが提供しているAPIがまとめられているページ、Google APIsで利用登録とAPIキーを取得します。

https://console.developers.google.com

(4)Custom Search Engineの作成と検索エンジンIDの取得

Googleが提供しているカスタムサーチエンジン機能を用いて検索エンジンIDを取得します。

https://cse.google.com/create/new

(5)APIキーと検索エンジンIDを使用してGoogle 検索を実施

以下では、(1)と(2)が完了している前提で(3)と(4)について解説します。

3.Google APIsでCustom Search APIの利用登録とAPIキーの取得

ここで行う事は、

1)プロジェクトの作成
2)プロジェクトの中で使うAPIを選択
3)APIの有効化
4)認証情報の設定と制限の設定
5)APIキーの取得

の順番に行います。

(1)ログイン画面
既にGoogleアカウントでログイン済の場合は表示されません。

GoogleアカウントはGmailのメールアドレス取得時に同時に取得しているので、スマホがAndroidだと気づないうちに取得している人もいるかもしれません。

お持ちでない場合は下記から新規に取得できます。
https://accounts.google.com/SignUp?hl=ja

(2)利用規約の承認
よく読んで納得がいく場合は承認します。

(3)APIライブラリ画面の表示
非常に沢山のAPIがありビックリしますが、 APIはプロジェクト単位で利用を管理するので、まずはプロジェクトを新規作成する必要があります。左上の赤枠、プロジェクトの選択、を選びます。

(4)プロジェクトの選択と作成

出てきたウインドウの右上の「新しいプロジェクト」を選びます。

(5)新しいプロジェクトの命名と作成

新しいプロジェクトに名前を付けます。最初から着いている名前をそのまま使うと何がどのプロジェクトかわからなくてなって後で困るので収集するデータに関連づけた名前が良いでしょう。

 

(6)プロジェクトの選択
プロジェクトは作成できましたがまだ選ばれていないので、左上の赤枠でさきほど作成したプロジェクトを選びます。

 

(7)APIの選択

API一覧画面に戻りますが、今回使うCustom Search APIは一番下にあります。

赤枠をクリックし、

出てきた画面で「有効にする」ボタンを押します。

(8)認証情報の作成
赤枠の「認証情報の作成」ボタンを押します。

今回使用するAPIはCustom Search APIなので、そうなっている事を確認したら「必要な認証情報」ボタンを押します。

APIキーが取得できましたので、赤枠右端の書類が重なっている形のアイコンをクリックしてコピーをし、保存しておきましょう。「完了」ボタンを押して完了です。

なお、キーの制限のリンクを押すと下記のように「どんなアプリケーションから使うか?」や「どのAPIのキーとして使用するか?」などの制限が設定できます。

個人がパソコンから動かす前提ですとどの制限も使いにくいので今回は設定しません。そのため、APIキーは誰にも知られないように注意しましょう。

(9)APIキーの取得が完了
必要に応じてブックマークをし、ブラウザの画面を閉じましょう。

4.Custom Search Engineの作成と検索エンジンIDの取得

(1)Googleカスタム検索のページにアクセス
https://cse.google.com/create/new
に行きます

(2)検索するサイトを入力


元々は、カスタム検索エンジンは自分のサイトにGoogleの検索機能を設置するためのものでしたので、画面上部には「ご自身のサイトの検索エンジンを作成するには、サイト名を入力して「作成」を押してください」と書いてありますが、英文ドキュメントには「 You can include any sites you want, not just the sites you own」と何でも良いと書いてあるので、とりあえずはwww.google.co.jpを入れ、「言語」を日本語、検索エンジンの名前も適当にいれて「作成」ボタンを押します。

(3)検索エンジンの編集

左部メニューから検索エンジンの編集、を押します。


そして右下を「追加したサイトを重視してウェブ全体を検索する」に変更し「更新」します。

(4)検索エンジンIDの取得

「検索エンジンID」ボタンを押して検索エンジンボタンを取得します。

(5)画面を閉じます。

5.APIキーと検索エンジンIDを使用してGoogle検索を利用

ここまでで、「APIキー」と「検索エンジンID」が取得できました。ブラウザのアドレスバーに

https://www.googleapis.com/customsearch/v1?key=「API_KEY」&cx=「検索エンジンID」

と入力してみましょう。「API_KEY」と「検索エンジンID」は3と4で取得したものに置き換えてください。下記のような検索結果が表示されたら正常動作しています。

次のステップとしてこれを利用したクローラーを作成の準備が整いました。