Tony Wang4 分で読めますGoogle Trends をスクレイピングする方法 2026年版(API & Python)
2026年に Google Trends のデータ(時系列の関心度、急上昇・人気クエリ、トレンド検索)を API 経由で構造化された JSON として取得する方法と、法的な基礎知識を解説します。
2026年に Google Trends のデータを取得する最速の方法は、Trends サイトを自分で自動化するのではなく、正規化された JSON(時系列の関心度、急上昇・人気の関連クエリ、地域別の関心度、トレンド検索)を返す構造化された Trends API を呼び出すことです。Google Trends には公式の公開 API がないため、リクエストの形式とパースを代わりに処理してくれるメンテナンス済みのエンドポイントを使うのが実用的な選択肢になります。
最初に知っておくべきことが 1 つあります。Google Trends の値は相対的で 0〜100 に正規化されており、絶対的な検索回数ではありません。これはどのように収集しても同じなので、生のボリュームではなく相対的な動きを中心に分析を組み立ててください。
Google Trends のスクレイピングは合法ですか?
Google Trends は公開データであり、公開データの収集は一般に非公開アカウントへのアクセスとは異なる扱いを受けます。ただし無条件ではありません。
- 公開されている Trends の情報のみを収集してください。ログインが必要なデータは対象外です。
- レート制限を尊重し、サービスに過度な負荷をかけないでください。
- 商用での再配布の前に、Google の利用規約とお住まいの地域の法律を確認してください。
- 値は正規化されたインデックスであることを忘れず、製品の中で誠実に表現してください。
これは法的助言ではありません。詳しくは2026年、ウェブスクレイピングは合法ですか?をご覧ください。
選択肢 1:Python で自前実装する(そしてなぜ壊れるのか)
よくある自前実装の手段は、Trends のフロントエンドを模倣する pytrends のような非公式ライブラリです。
from pytrends.request import TrendReq
pytrends = TrendReq()
pytrends.build_payload(["ai agents"], timeframe="today 12-m", geo="US")
df = pytrends.interest_over_time()
うまく動くうちは動きます。繰り返し悩まされるのは次の点です。
- レート制限と 429 — Google は内部エンドポイントを積極的にスロットリングするため、プロキシとバックオフが必要になります。
- 非公式で不安定 — これらのライブラリは、予告なく変更されるドキュメント化されていない内部 API を追いかけています。
- ペイロードの癖 — タイムフレーム、地域(geo)、カテゴリコードは扱いが難しく、わずかに間違えやすいものです。
- リクエストをまたいだ正規化 — 別々の呼び出しで取得したキーワードを比較するのは信頼できません。各バッチが再正規化されるためです。
選択肢 2:ノーコードや既製ツール
ダッシュボードやブラウザツールはチャートを見せてくれますが、保存・結合・スケジュール実行できる形で元の時系列データを提供してくれることはほとんどありません。パイプラインや製品に組み込むものには、JSON が欲しいところです。
選択肢 3:構造化された Google Trends API
Crawlora の Google Trends API は、時系列の関心度、急上昇・人気クエリ、関連トピック、地域別の関心度、トレンド検索に対応した、ドキュメント化されたエンドポイントを公開しており、すべて正規化された JSON を返します。
curl -X POST "https://api.crawlora.net/api/v1/google/trends/explore/interest-over-time" \
-H "x-api-key: $CRAWLORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keywords": ["ai agents"], "geo": "US", "timeframe": "today 12-m"}'
import requests
resp = requests.post(
"https://api.crawlora.net/api/v1/google/trends/explore/interest-over-time",
headers={"x-api-key": "YOUR_API_KEY"},
json={"keywords": ["ai agents"], "geo": "US", "timeframe": "today 12-m"},
)
for point in resp.json()["data"]["timeline"]:
print(point["date"], point["values"])
レスポンスは正規化された JSON です(フィールドは説明用です。正確なリクエストボディとスキーマはドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"timeline": [
{ "date": "2026-05-01", "values": [{ "keyword": "ai agents", "value": 72 }] }
]
}
}
追跡ではなく発見が目的なら、急上昇/人気クエリやトレンドのエンドポイントで、今勢いを増しているものを浮かび上がらせましょう。
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/google/trends"
rising = requests.post(f"{base}/explore/rising-queries", headers=h,
json={"keywords": ["ai agents"], "geo": "US"}).json()["data"]
trending = requests.get(f"{base}/trending", headers=h, params={"geo": "US"}).json()["data"]
1 回の interest-over-time 呼び出しで最大 5 つのキーワードを渡すと、まとめて正規化されます。別々のリクエストにバッチを分けると壊れてしまう比較が、これで成立します。
収集できるもの
- キーワードごとの 0〜100 に正規化された時系列の関心度
- ある語に対する急上昇・人気の関連クエリ
- 関連トピックと地域別の関心度
- 今急上昇しているものを示すトレンド検索とトレンド詳細
制限とよくある課題
- 公式 API がない。 Google は公開の Trends API を一度も提供しておらず、非公式ライブラリ(pytrends)は内部エンドポイントを叩きます。これはレート制限(429)がかかり、予告なく変更されます。
- 値は相対的で絶対的ではない。 すべての時系列はリクエスト内で 0〜100 に正規化されます。これらは検索回数ではなくインデックスです。誠実に表現し、ボリュームとして読まないでください。
- 1 回の呼び出しで正規化する。 最大 5 つのキーワードを一緒に渡すと、同じスケールを共有します。別々のリクエストに分けると各々が再正規化され、比較できなくなります。
- geo・タイムフレーム・カテゴリの癖。 地域コード、タイムフレーム、カテゴリ ID は扱いが難しいため、enums と locations のエンドポイントを使って正しく指定してください。
出典
どこで役立つか
まずは無料で試す: 無料ウェブスクレイパーで任意の公開 URL を実行するか、アンチボットチェッカーでサイトがボットをブロックしているか確認しましょう。登録は不要です。
Trends データは検索ランキングと組み合わせると最も力を発揮します。需要と可視性を組み合わせましょう。あるクエリが急上昇しているとき、Google Search APIやクロスエンジンの SERP モニタリングワークフローを使って自社がそのクエリで上位表示されているかを確認し、需要が高まっているところにコンテンツの優先順位を置きます。SEO とコンテンツ計画では、この「需要 × ランキング」のループこそが本質です。ランキング側については2026年のベスト SERP API、別のエンジンについてはBrave Search をスクレイピングする方法、地域の需要と現地のビジネスを照合するにはGoogle Maps をスクレイピングする方法、より広いツールセットについてはウェブスクレイピング API の選び方をご覧ください。
まずはプレイグラウンドでエンドポイントを試し、API ドキュメントでリクエストとレスポンスのスキーマを読み、料金ページでクレジットのコストを確認することから始めましょう。
よくある質問
公式の Google Trends API はありますか?
ありません。Google は公開の Google Trends API を一度も提供しておらず、pytrends のような非公式ライブラリは、レート制限(HTTP 429)がかかり予告なく変更される、ドキュメント化されていない内部エンドポイントを追いかけています。Crawlora の Google Trends エンドポイントは、正規化された JSON を返すメンテナンス済みでドキュメント化された代替手段を提供します。
Google Trends の値は実際の検索ボリュームですか?
いいえ。Trends の値は相対的で、各クエリ内で 0〜100 のスケールに正規化されており、絶対的な検索回数ではありません。生のボリュームではなく相対的な動きを分析し、インデックスとして表現してください。
何を収集できますか?
時系列の関心度、急上昇・人気の関連クエリ、関連トピック、地域別の関心度、トレンド検索、そして語ごとのトレンド詳細を収集できます。
急上昇やトレンドの検索はどうやって取得しますか?
ある語の勢いには rising-queries と top-queries エンドポイント(最大 5 キーワード)を、今急上昇しているものには trending エンドポイント(geo 指定)を使い、単一の語の完全なウィジェット一式には trending/detail を使います。
複数のキーワードを比較できますか?
はい。最大 5 つのキーワードを 1 回の呼び出しで interest-over-time エンドポイントに渡すと、まとめて正規化され、直接比較できます。別々の呼び出しで取得した値を比較するのは、各バッチが再正規化されるため信頼できません。
Google アカウントやキーは必要ですか?
いいえ。1 つの Crawlora API キー(x-api-key ヘッダーとして送信)ですべての Trends エンドポイントを呼び出せます。Google へのログインや管理すべきクォータはありません。