Tony Wang6 分で読めますGoogle Financeのスクレイピング方法【2026年版】(API & Python)
2026年版Google Financeスクレイピングガイド。株価・財務データと市場全体の値上がり/値下がり銘柄、決算、カテゴリをDIY・ノーコード・構造化APIで取得。
2026年に Google Finance をスクレイピングする最も手早い方法は、Google のクライアントレンダリングされた Finance ページを自分でパースするのではなく、正規化された JSON を返す構造化 API を呼び出すことです。返ってくるのは、相場、チャート、財務情報、企業データ、そして市場全体の値動き上位銘柄やカテゴリビューです。Google は自社の Finance API を2012年に閉鎖しており、頼れる公式のエンドポイントは存在せず、唯一残っている公式のものは遅延型のスプレッドシート関数だけです。このガイドでは3つのアプローチすべてを取り上げ、それぞれが何を返し、どこで破綻し、そして法律上の実態を最初に解説します。
なぜ Google Finance をスクレイピングするのか?
Google Finance は相場、ニュース、市場コンテキストを一箇所に集約しており、次のような用途に役立ちます。
- 市場全体のモニタリング — 銘柄を1つずつポーリングすることなく、今日の値動き上位銘柄、トレンド銘柄、厳選された指数を追跡できます。
- 決算カレンダーのトラッキング — 複数企業の今後・直近の決算情報を1つのフィードとして取得できます。
- セクター・カテゴリダッシュボード — 市場全体ではなく、Google Finance のカテゴリ(テクノロジー、エネルギーなど)に絞ったニュースと銘柄リストを取得できます。
- 相場とファンダメンタルズの拡充 — 価格、企業プロフィール、財務諸表データをウォッチリストやリサーチツールに紐付けられます。
- ニュース・センチメントのリサーチ — 銘柄のニュースやアナリスト記事フィードを検索需要や個人投資家の話題と組み合わせて、何がそれを動かしているかを把握できます。
Google Finance をスクレイピングするのは合法か?
選択肢1: Python で DIY する(そしてなぜ破綻するか)
Google Finance のページは静的 HTML ではなくクライアントレンダリングされたアプリであるため、DIY スクレイパーはヘッドレスブラウザを操作し、レンダリングされたマークアップを何であれパースする必要があります。
from bs4 import BeautifulSoup
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://www.google.com/finance/quote/AAPL:NASDAQ")
page.wait_for_selector("[data-last-price]") # price loads in async
soup = BeautifulSoup(page.content(), "html.parser")
デモは動きますが、その後破綻します。
- 2012年以降、公式 API がない。 Google は2012年10月に Finance Portfolio API と Gadgets API を閉鎖し、公開の代替を一度も提供していません。そのため、頼れるドキュメント化されたエンドポイント、キー、SLA は存在しません。
- JS レンダリングされており、単純な HTTP クライアントではスクレイピングできない。 価格やチャートデータはクライアントサイドのアプリに非同期で読み込まれるため、
requestsだけでは空のシェルしか返ってきません — 実際のブラウザが必要です。 - ラベル付けされていない、バージョン管理された CSS クラス。 セクション全体で安定した
data-*属性の戦略がなく、フロントエンドのデプロイのたびにクラス名が入れ替わり、警告なくセレクタが壊れます。 - Google の規模でのアンチボット対策。 データセンター IP からのヘッドレストラフィックはすぐに CAPTCHA でブロックされるか遮断され、銘柄ごとにブラウザを実行するのはスケールさせるには遅くコストもかかります。
選択肢2: ノーコードツール
Google が API に最も近い形で提供しているのは Google スプレッドシートの GOOGLEFINANCE() 関数です — =GOOGLEFINANCE("AAPL") でセルにライブ価格を取得したり、開始日・終了日を指定して過去データの範囲を取得したりできます。単発のスプレッドシートには確かに便利ですが、データは遅延しており、Sheets の外からプログラムで呼び出す方法はなく、値動き上位銘柄、決算カレンダー、カテゴリニュースには一切対応していません。スケジュール実行、他のデータとの結合、市場全体のビューへのアクセスが必要な場合は、別の手段を探す必要があります。
選択肢3: 構造化された Google Finance API
繰り返し実行可能で権限の範囲が明確なワークフローには、Google Finance スクレイピング API が正規化された JSON を返し、ブラウザを実行する必要はありません。銘柄の企業プロフィールを取得してみましょう。
curl "https://api.crawlora.net/api/v1/google-finance/company/AAPL:NASDAQ" \
-H "x-api-key: $CRAWLORA_API_KEY"
相場、チャート、企業情報、財務情報を Python で取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/google-finance"
quote = requests.get(f"{base}/quote/AAPL:NASDAQ", headers=h).json()["data"]
chart = requests.get(f"{base}/chart/AAPL:NASDAQ", headers=h,
params={"window": "1y"}).json()["data"]
company = requests.get(f"{base}/company/AAPL:NASDAQ", headers=h).json()["data"]
financials = requests.get(f"{base}/financials/AAPL:NASDAQ", headers=h).json()["data"]
企業データは正規化された JSON なので、そのまま保存できます(実際のレスポンスです。完全なスキーマはドキュメントを確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories.",
"ceo": "Tim Cook",
"employees": 166000,
"headquarters": "Cupertino, CA, US",
"sector": "Technology",
"market_cap": 4010000000000,
"pe_ratio": 34.56,
"fifty_two_week_high": 288.61,
"fifty_two_week_low": 169.21
}
}
単一銘柄にとどまらず、markets/* ファミリーは市場全体のビュー — 今日の値動き上位銘柄、決算カレンダー、カテゴリに絞った銘柄リスト — に、quote/chart/company にはまったく触れずにアクセスできます。
movers = requests.get(f"{base}/markets/movers", headers=h,
params={"count": 20}).json()["data"]
earnings = requests.get(f"{base}/markets/earnings", headers=h).json()["data"]
tech_stocks = requests.get(f"{base}/markets/categories/18/stocks", headers=h).json()["data"]
movers も同じ正規化された形で、行ごとに ticker/exchange/name が入っています。
{
"code": 200,
"msg": "OK",
"data": {
"count": 20,
"items": [
{ "ticker": "AAPL", "exchange": "NASDAQ", "name": "Apple Inc" }
]
}
}
企業名を銘柄シンボルに解決するには /google-finance/search?q= または /google-finance/context?q= を使います。どちらも ticker/exchange/name の候補を返します。銘柄ごと(または市場スナップショットごと)に1行を保存し、スケジュールを組んで再実行してください。
収集できるもの
銘柄ごと(AAPL:NASDAQ や BTC-USD のような quote): 相場ページ全体(概要、投資情報、主要統計、ニュース、関連銘柄)、前日終値を含む過去のチャートポイント、企業プロフィール(CEO、従業員数、本社所在地、セクター、時価総額、PER、52週レンジ、日中レンジ、出来高)、年次・四半期の財務情報(売上高、純利益)、分類カテゴリ、関連証券、ニュース・アナリスト記事。市場全体: 厳選された指数、値動き上位銘柄、主要指標ランキング、トレンド銘柄、注目銘柄、決算カレンダー、関連銘柄スナップショットが紐付いたヘッドライン記事、カテゴリに絞ったニュースと銘柄リスト。あくまで公開データのみです。
制約とよくある課題
- 頼れる公式 API がない。 Google は2012年に Finance API を閉鎖し、公開の代替を用意していません — DIY のアプローチはすべて、Google がいつでも再設計しうるページに対してブラウザを操作することを意味します。
- JS レンダリングされたページには実際のブラウザが必要。 単純な HTTP リクエストでは価格やチャートデータは見えません。DIY スクレイピングでは、銘柄ごとにヘッドレス Chrome を動かすオーバーヘッドとコストがかかります。
- データは情報提供目的であり、助言でも、リアルタイムの取引データでもない。 数値は推奨ではなく入力データとして扱い、重要な内容は信頼できる情報源で確認してください。
- 再配布にはライセンスが必要になる場合がある。 リサーチや社内ダッシュボード向けに公開の相場・市場データを収集するのと、それを商用として再販・再ホストするのとは別問題です — 後者はライセンスが必要になる場合があるため、Google の利用規約を確認してください。
- カテゴリ ID と指標 ID は名前だけでは分からない。
markets/categories/*とmarkets/topのエンドポイントは名前ではなく数値のカテゴリ ID・指標 ID を受け取ります — パイプラインを組む前に、必要な ID をドキュメントで確認してください。
どこで使われるか
- 市場モニタリングダッシュボード — 値動き上位銘柄、トレンド銘柄、厳選された指数をスケジュールで更新します。
- 決算カレンダーフィード — ウォッチリスト内の複数企業の今後・直近の決算情報です。
- セクターリサーチ — 銘柄を1つずつ見るのではなく、カテゴリに絞ったニュースと銘柄リストです。
- ファンダメンタルズの拡充 — 企業プロフィールと財務諸表データをリサーチツールや CRM に紐付けます。
出典
収集を始める
まずは無料でお試しください: 任意の公開 URL を無料ウェブスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップ不要です。
quote、company、movers の各エンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金をご覧ください。Google Finance は市場を幅広くカバーしています — 値動き上位銘柄、決算カレンダー、厳選された指数、カテゴリビューなど。一方Yahoo Financeは単一銘柄のファンダメンタルズ、オプション、アナリストデータをより深くカバーしているため、幅と深さの両方が必要なワークフローでは両方を組み合わせてください。どちらもカバーしていないアセットクラスについては、CoinGecko のスクレイピング方法が暗号資産の価格、時価総額、取引所データを扱います。あわせてウェブスクレイピング API の選び方とウェブスクレイピングは合法かもご覧ください。
よくある質問
公式のGoogle Finance APIはありますか?
ありません。GoogleはFinance PortfolioとGadgets APIを2012年10月に廃止し、公開の代替を一度も提供していません。唯一の公式な名残はGoogle Sheetsの遅延型GOOGLEFINANCE()関数です。
Google Financeで株式や暗号資産のシンボルはどう指定しますか?
Google Finance自体が使う取引所を含む銘柄識別子(株式ならAAPL:NASDAQ、暗号資産ならBTC-USDなど)を、quote・chart・company・financialsの各エンドポイントで共通して使用します。
Google Financeのスクレイピングは合法ですか?
完全に違法ではないもののグレーゾーンです。Googleの利用規約は許可のない自動アクセスを禁じています。公開の参考データとして扱い、レート制限を守り、Google自体のフィードを再販・再ホストしないでください。これは法的助言ではありません。
このガイドはhow-to-scrape-yahoo-financeガイドとどう違いますか?
Yahoo Financeガイドはyfinanceと構造化APIによる銘柄ごとの詳細なファンダメンタルズ、オプション、アナリストデータに焦点を当てています。本ガイドの差別化要素はGoogle Financeのmarkets/*系エンドポイント — カテゴリ別の値上がり/値下がり銘柄とニュース、決算カレンダー、厳選指数 — というYahoo Financeガイドが扱わない市場全体のビューです。
スクレイピングの代わりにGoogle SheetsのGOOGLEFINANCE()関数を使えますか?
単発のスプレッドシート用途なら使えます — 遅延型のライブ価格や過去データ範囲を取得できます。Sheets外でのプログラムからのアクセスはできず、値上がり/値下がり銘柄、決算カレンダー、カテゴリビューもカバーしないため、パイプライン用のAPIの代替にはなりません。
単一銘柄を超えてどんな市場全体のデータが取得できますか?
厳選指数、本日の値上がり/値下がり銘柄、主要指標ランキング、トレンド銘柄と注目銘柄、決算カレンダー、関連銘柄スナップショット付きの見出し記事、そしてmarkets/*エンドポイントによるカテゴリ別ニュースと銘柄リストです。
Google Financeのデータはリアルタイムですか?
いいえ — ライセンスされたリアルタイム取引フィードではなく、参考情報であり遅延の可能性があるものとして扱い、重要な判断の前には信頼できる情報源で確認してください。