【PR】差別化に悩むマーケターの方は、是非ご覧ください。

検索に込められた“ホンネ”を読み解き、
消費者理解を深めるツール
消費者は、自分の中のホンネを、人に伝えることなく検索という行動で言葉にしています。
Listening Mindは、そんな“声にならない言葉”に宿るインテントを読み解き、
マーケティングや商品開発に新たな視点と、まだ見ぬ兆しをもたらします。
【PR】差別化に悩むマーケターの方は、是非ご覧ください。
消費者は、自分の中のホンネを、人に伝えることなく検索という行動で言葉にしています。
Listening Mindは、そんな“声にならない言葉”に宿るインテントを読み解き、
マーケティングや商品開発に新たな視点と、まだ見ぬ兆しをもたらします。
Google Custom Search APIは、Google検索結果をプログラム的に取得できる非常に便利なツールです。このガイドでは、プログラミング初心者の開発者志望者向けに、APIキーの取得からPythonを使った検索結果の取得、自動収集の設定方法までを詳しく解説します。検索結果の収集と分析は、効率的な開発やマーケティングにおいて重要な要素です。では、早速始めましょう。
Google Custom Search APIは、Google検索結果をプログラム的に取得できるサービスです。公式ドキュメントによると、「Google Custom Search API allows you to retrieve Google search results programmatically」(Google Custom Search APIを使用すると、プログラム的にGoogle検索結果を取得できます)とされています。
参考:「Custom Search JSON API」- Google Developers, https://developers.google.com/custom-search/v1/overview
APIキーの定義
APIキーは、特定のサービスにアクセスするために使用される一意の識別子です。APIキーを取得するには、まずGoogle Cloud Platformでプロジェクトを作成し、APIを有効にする必要があります。
Google Cloud Platformでのプロジェクト作成
APIキーの取得手順
注意: Google Cloud Platformの具体的なUIや手順は時間とともに変更される可能性があります。読者は最新のGoogle Cloud Platformのドキュメントを参照することをお勧めします。
参考:「Using API keys」- Google Cloud Platform, https://cloud.google.com/docs/authentication/api-keys
Google Programmable Search Engine(PSE)は、特定のウェブサイトやドメインに特化したカスタム検索エンジンを作成できるツールです。これにより、特定の情報を絞り込んだ検索結果を得ることができますが、今回はGoogle全体を検索対象とします。
カスタム検索エンジンの作成手順
補足説明
参考:「Custom Search JSON API」- Google Developers, https://developers.google.com/custom-search/v1/overview
PythonでAPIリクエストを送信するためには、リクエストライブラリが必要です。このライブラリは、HTTPリクエストを簡単に送信するためのツールです。リクエストライブラリのインストール方法は以下の通りです。
pip install requests
Pythonコードサンプル:検索結果の取得
以下は、Google Custom Search APIを使ってPythonで検索結果を取得するためのサンプルコードです。
import requests
API_KEY = 'YOUR_API_KEY'
SEARCH_ENGINE_ID = 'YOUR_SEARCH_ENGINE_ID'
query = 'Python programming'
url = f'https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}'
response = requests.get(url)
results = response.json()
for item in results.get('items', []):
print(item['title'], item['link'])
このコードでは、APIキーと検索エンジンIDを使用してGoogle検索結果を取得し、タイトルとリンクを出力します。
注意: 実際の使用ではエラーハンドリングやより詳細な結果の処理を追加することが推奨されます。
import requests
API_KEY = 'YOUR_API_KEY'
SEARCH_ENGINE_ID = 'YOUR_SEARCH_ENGINE_ID'
query = 'Python programming'
url = f'https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}'
try:
response = requests.get(url)
response.raise_for_status() # HTTPエラーをチェック
results = response.json()
for item in results.get('items', []):
print(item['title'], item['link'])
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
参考:「requests: HTTP for Humans」- Python Software Foundation, https://requests.readthedocs.io/en/latest/
検索結果のJSONパース
取得した検索結果はJSON形式で返されます。このデータを扱いやすくするために、PythonでJSONをパースする方法を学びましょう。先ほどのサンプルコードを拡張して、各検索結果のタイトルとURLをリストに保存してみます。
import requests
import json
API_KEY = 'YOUR_API_KEY'
SEARCH_ENGINE_ID = 'YOUR_SEARCH_ENGINE_ID'
query = 'Python programming'
url = f'https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}'
response = requests.get(url)
results = response.json()
search_results = []
for item in results.get('items', []):
result = {
'title': item['title'],
'link': item['link']
}
search_results.append(result)
print(json.dumps(search_results, indent=2, ensure_ascii=False))
出力されるデータ項目
Google Custom Search APIを使用して得られるデータには、以下の主要な項目が含まれます。これらの項目は、JSON形式のレスポンスに含まれており、パースして利用することができます。
各検索結果の詳細情報には以下が含まれます:
サンプルJSONレスポンスの例
以下は、Google Custom Search APIから得られるサンプルレスポンスの一部です:
import requests
import json
API_KEY = 'YOUR_API_KEY'
SEARCH_ENGINE_ID = 'YOUR_SEARCH_ENGINE_ID'
query = 'Python programming'
url = f'https://www.googleapis.com/customsearch/v1?key={API_KEY}&cx={SEARCH_ENGINE_ID}&q={query}'
response = requests.get(url)
results = response.json()
search_results = []
for item in results.get('items', []):
result = {
'title': item['title'],
'link': item['link']
}
search_results.append(result)
print(json.dumps(search_results, indent=2, ensure_ascii=False))
データの保存方法
収集した検索結果を保存するためには、CSVファイルやデータベースに保存する方法が一般的です。以下は、検索結果をCSVファイルに保存する方法の例です。
import csv
# 検索結果のCSVファイルへの保存
with open('search_results.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['Title', 'Link'])
for result in search_results:
writer.writerow([result['title'], result['link']])
参考:「CSV Module」- Python Software Foundation, https://docs.python.org/3/library/csv.html
リクエスト制限は、特定の時間枠内にAPIを呼び出す回数の上限を指します。Google Custom Search APIの無料枠は、最新の情報を確認する必要があります。現時点(2024年8月2日)では、1日に100リクエストが無料枠として提供されており、これを超えると有料プランにアップグレードする必要があります
最新の制限については、Google Cloudの料金ページを確認してください。一般的に、無料枠を超えると「Daily Limit Exceeded」というエラーメッセージが表示されます。この場合、リクエストの数を減らすか、有料プランにアップグレードする必要があります。
定期的に検索結果を収集するためには、自動収集スクリプトを作成することが必要です。以下は、Pythonを使って毎日決まった時間に検索結果を収集するスクリプトの例です。
import schedule
import time
def collect_search_results():
# 先ほどの検索結果収集コードをここに追加
pass
# 毎日午前9時にcollect_search_results関数を実行
schedule.every().day.at("09:00").do(collect_search_results)
while True:
schedule.run_pending()
time.sleep(1)
参考:「schedule: Job Scheduling for Humans」- GitHub, https://github.com/dbader/schedule
データ分析の基本
収集した検索結果データを分析することで、有益な情報を引き出すことができます。例えば、検索結果のランキングや頻出するキーワードの分析などが考えられます。
データの視覚化ツールの紹介
データの視覚化は、分析結果をわかりやすく伝えるために非常に重要です。以下は、Pythonでデータを視覚化するためのツールの例です。
Matplotlib:
import matplotlib.pyplot as plt
# データの準備
titles = [result['title'] for result in search_results]
lengths = [len(title) for title in titles]
# グラフの作成
plt.bar(titles, lengths)
plt.xlabel('Title')
plt.ylabel('Length')
plt.title('Title Lengths of Search Results')
plt.xticks(rotation=90)
plt.show()
参考:「Matplotlib: Visualization with Python」- Matplotlib, https://matplotlib.org/
この記事では、Google Custom Search APIを使って検索結果を自動収集する方法を詳しく解説しました。APIキーの取得からPythonを使ったデータの取得、自動収集の設定、そしてデータの分析と視覚化まで、初心者でもわかりやすく理解できる内容になっています。ぜひこのガイドを参考にして、効率的なデータ収集と分析を行ってください。
ListeningMindの機能と使い方に関する情報、市場調査レポートの公開、及び関連するマーケティング手法についてのコンテンツをお届けするListeningMind marketing office.の編集部です。