はじめに
Google Custom Search APIを使えば、プログラムからGoogle検索を実行し、検索結果を取得できます。これにより、Webスクレイピングの手間を省きつつ、信頼性の高い検索結果を得ることが可能です。
Google Custom Search APIとは
Google Custom Search APIは、Googleの検索エンジンをプログラムから操作できるAPIです。特定のWebサイト内の検索や、カスタム検索エンジンを使った検索が可能です。これにより、手作業での検索を自動化でき、効率的に情報収集ができます。
今回はPythonを使ってGoogle Custom Search APIを活用する方法を、初心者向けに解説します。
やりたいこと
Google Cloud Consoleでの事前準備
※この手順は、Googleアカウントが登録済みであることを前提に進めます。
アカウントをお持ちでない方は事前に登録をお願いいたします。(無料で始めることができます)
1.クラウドコンソールでプロジェクトの作成
- Google Cloud Consoleにアクセス
Google Cloud Consoleにアクセスし、Googleアカウントでログインします。 - ①画面上部プロジェクトの選択を押下
②ウィンドウが開かれるので新しいプロジェクトを押下 - プロジェクト名と場所を入力し、「作成」を押下。(任意です)
- 画像の箇所が作成したプロジェクトであるかを確認
今回は「test」というプロジェクトを作成しています。
2.APIの有効化
- 左上「≡」>「APIとサービス」>ライブラリを開く
- 「Custom Search API」を検索>「Custom Search API」を選択
- 「有効にする」をクリック
3.APIキーの取得
- 「認証情報」リンクをクリック>「認証情報を作成」>「APIキー」を選択
- APIキーを保存>APIキーを編集
- キーの制限>「IPアドレス」を選択>「ADD」から自身のIPアドレスを追加>「キーを制限」を選択>「Select API」を選択>「保存」
※APIを不正利用される可能性があるので、セキュリティをかける目的があります
カスタム検索エンジンの設定
- Programmable Search Engine にアクセス>「追加」を選択
- 「検索エンジン名」を入力(何でも構いません)>「検索の対象」を指定(特定のサイトのみを対象にする場合はそのサイトを、Web全体を対象にする場合は「ウェブ全体を検索」を選択)>認証にチェック>作成をクリック
- 作成後「カスタマイズ」をクリック
- カスタム検索エンジンID(cx)の取得> 作成した検索エンジンIDを控えておいてください> 地域の設定(今回は日本を選択)
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
に記述してください。
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()
コード解説
- APIキーと検索エンジンIDを定義:
main.py
内にAPIキーとカスタム検索エンジンIDを直接記述します。 - 検索の実行:
googleapiclient.discovery.build
を使ってGoogle Custom Search APIにリクエストを送信。 - 結果の表示: コンソールに検索キーワードのトップリンクを表示します。
実行結果
ターミナルで 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の検索結果を取得できます。業務自動化や情報収集などに活用してみてください。
コメント