Google Custom Search API を使ってGoogle検索を自動化

はじめに

Google Custom Search APIを使えば、プログラムからGoogle検索を実行し、検索結果を取得できます。これにより、Webスクレイピングの手間を省きつつ、信頼性の高い検索結果を得ることが可能です。

Google Custom Search APIとは

Google Custom Search APIは、Googleの検索エンジンをプログラムから操作できるAPIです。特定のWebサイト内の検索や、カスタム検索エンジンを使った検索が可能です。これにより、手作業での検索を自動化でき、効率的に情報収集ができます。

今回はPythonを使ってGoogle Custom Search APIを活用する方法を、初心者向けに解説します。

やりたいこと

PythonでGoogle Custom Search APIを利用するにあたっての事前設定
検索結果を取得して一覧表示する
検索結果をコンソールに表示する

Google Cloud Consoleでの事前準備

※この手順は、Googleアカウントが登録済みであることを前提に進めます。
アカウントをお持ちでない方は事前に登録をお願いいたします。(無料で始めることができます)

1.クラウドコンソールでプロジェクトの作成

  1. Google Cloud Consoleにアクセス
    Google Cloud Consoleにアクセスし、Googleアカウントでログインします。
     
  2. ①画面上部プロジェクトの選択を押下
    ②ウィンドウが開かれるので新しいプロジェクトを押下
  3. プロジェクト名と場所を入力し、「作成」を押下。(任意です)
  4. 画像の箇所が作成したプロジェクトであるかを確認
    今回は「test」というプロジェクトを作成しています。

2.APIの有効化

  1. 左上「≡」>「APIとサービス」>ライブラリを開く
  2. 「Custom Search API」を検索>「Custom Search API」を選択
  3. 「有効にする」をクリック

3.APIキーの取得

  1. 「認証情報」リンクをクリック>「認証情報を作成」>「APIキー」を選択
  2. APIキーを保存>APIキーを編集
  3. キーの制限>「IPアドレス」を選択>「ADD」から自身のIPアドレスを追加>「キーを制限」を選択>「Select API」を選択>「保存」
    ※APIを不正利用される可能性があるので、セキュリティをかける目的があります

カスタム検索エンジンの設定

  1. Programmable Search Engine にアクセス>「追加」を選択
  2. 「検索エンジン名」を入力(何でも構いません)>「検索の対象」を指定(特定のサイトのみを対象にする場合はそのサイトを、Web全体を対象にする場合は「ウェブ全体を検索」を選択)>認証にチェック>作成をクリック
  3. 作成後「カスタマイズ」をクリック
  4. カスタム検索エンジンID(cx)の取得> 作成した検索エンジンIDを控えておいてください> 地域の設定(今回は日本を選択)

 

これでAPIの設定が完了し、プログラムを実行する準備が整いました。

Pythonでの準備

ライブラリの取得

google-api-python-client の取得

google-api-python-clientライブラリの説明>
Google APIにアクセスするための公式ライブラリ。Custom Search API以外にも、Google DriveやGoogle Sheets APIなどに対応。

インポート手順

ターミナルで以下のコマンドを実行してください。

pip install google-api-python-client

ディレクトリ構成

custom_search_api/
└── main.py

main.py: Pythonのメインスクリプト

コードスクリプト

以下のPythonコードは、Google Custom Search APIを使って検索を実行し、入力したキーワードに基づいて最も関連性の高い検索結果のリンクを取得・表示するプログラムです。

以下のPythonコードを main.py に記述してください。

main.py
from googleapiclient.discovery import build

# APIキーとカスタム検索エンジンIDを設定
GOOGLE_API_KEY = "***************"
CUSTOM_SEARCH_ENGINE_ID = "********************"


def search(query):
    """Custom Search API を使って検索を実行し、レスポンスを返す。"""
    service = build("customsearch", "v1", developerKey=GOOGLE_API_KEY)
    res = service.cse().list(q=query, cx=CUSTOM_SEARCH_ENGINE_ID, lr="lang-jp", hl="ja").execute()
    return res

def get_top_result_link(query):
    """検索結果のトップリンクを返す。"""
    result = search(query)
    if "items" in result and len(result["items"]) > 0:
        return result["items"][0]["link"]
    return None

def main():
    query = input("検索キーワードを入力してください: ")
    top_link = get_top_result_link(query)

    if top_link:
        print(f"検索キーワード '{query}' のトップリンク: {top_link}")
    else:
        print("検索結果が見つかりませんでした。")

if __name__ == "__main__":
    main()

コード解説

  1. APIキーと検索エンジンIDを定義: main.py 内にAPIキーとカスタム検索エンジンIDを直接記述します。
  2. 検索の実行: googleapiclient.discovery.build を使ってGoogle Custom Search APIにリクエストを送信。
  3. 結果の表示: コンソールに検索キーワードのトップリンクを表示します。

実行結果

ターミナルで main.py を実行します。

python3 main.py

今回はこちらのサイト「yamaのテックノート」で検索を行いました。
すると、私が運営しております、こちらのサイト https://yyoshiblog.com が出力されました。

 

APIの無料枠と課金について

Google Custom Search APIは有料サービスであり、無料枠を超えると課金が発生します。利用制限については公式の「Programmable Search Engine」ページを参照してください。

無料枠と料金体系

  • 無料枠: 1日あたり100クエリまで
  • 超過料金: 1,000クエリあたり5ドル
  • 1日の上限: 10,000クエリ(有料枠)
  • 1クエリあたりの取得件数: 最大10件(100件取得には10回のリクエストが必要)

クォータのリセットタイミング

GoogleのAPIクォータは 太平洋時間(PT)の午前0時 にリセットされます。
日本時間(JST)では 17時(サマータイム時は16時) にリセットされます。

APIの使用状況や上限は、Google Cloud Consoleの「IAMと管理」>「割り当て」から確認できます。

まとめ

今回はPythonを使ってGoogle Custom Search APIを活用し、検索結果を取得してコンソールに表示する方法を解説しました。

このAPIを活用することで、WebスクレイピングなしにGoogleの検索結果を取得できます。業務自動化や情報収集などに活用してみてください。

コメント

タイトルとURLをコピーしました