― 公開情報の範囲で安全にWebスクレイピングする方法 ―
はじめに
自作AIを使ったFX自動売買を開発・運用していますが、
その補助として人が行うファンダメンタルズ分析も毎朝欠かせません。
- 経済指標
- 政策金利
- 要人発言
- 株価指数
- 通貨別センチメント
- 市場ニュース
ただし、これらの「情報収集部分」は単純作業であり、
判断に使う前段階としてはできるだけ自動化したい領域です。
そこで、
Power Automate for Desktop(以下 PAD)で、公開情報を1日1回だけ取得し、
Excelに値を書き込むだけで日次レポートが完成する仕組み
をつくりました。
ただ、せっかく "Qiita Advent Calendar 2025" へ投稿するのだから、
PAD のテクニカルなことを記載したいと思っていたのですが、
出来上がったフローはあまりにも単純で、
サンプルを組み合わせたような作りになってしまい、
このまま掲載するのは恥ずかしいので、
少しカレンダーテーマとは話題が違うかもしれませんが、
Webスクレイピングを行う際の「安全な対象サイトの選び方」 について、
具体例とともに整理しようと思います。
本記事で扱うスクレイピング範囲について
金融系サイトは、データのライセンスや利用規約の関係で制限が厳しいケースが多くあります。
そのため、本記事で扱うスクレイピングは、次の範囲に限定しています。
- ログイン不要の公開ページのみ
- 1日1回程度の低頻度アクセス
- 人間がブラウザで閲覧するのと同程度の画面遷移・取得量
- 取得データは自分の分析用途のみに利用
- データの再配布・商用販売はしない
- 各サイトの利用規約・著作権表示・robots.txt を尊重する
特に、Yahoo!ファイナンスや証券会社サイトなどは、
利用規約で自動取得やコンテンツの再利用が制限されているため、本記事では対象外とします。
1. 自動化したかった「朝のルーティン」
毎朝、人手で次のような情報をチェックしていました。
- 日銀・FRB の発言・声明
- 本日の経済指標カレンダー
- 米国債利回り、株価指数、VIX など
- 企業のIRニュース・決算発表
- 海外ニュースの見出し
- 通貨別センチメントのざっくりした方向感
判断そのものは人間が行うとしても、
「情報を取りに行って整理するだけ」の作業で5〜10 分かかることが多く、
ここをなんとかしたい、というのが出発点です。
そこで、この情報収集〜Excel入力の部分をPADで自動化しました。
2. 安全にスクレイピングしやすいサイトの具体例
ここでは、公開情報として提供されており、
1日1回程度の取得なら現実的に使いやすいサイトの例を挙げます。
最終的には各サイトの利用規約・著作権表示に従ってください。
🟢 公的・準公的データ(利用条件を守れば使いやすい)
● 日本銀行(BOJ)|政策金利・声明
- 金融政策決定会合の結果や声明文などが公開されています
- 著作権ページでは、商用利用や一部の画像等を除き、出所を明記した上での複製・引用が認められています(日本銀行の明示する条件の範囲内)
- 見出しテキストや日付を1日1回取得する程度なら、「人が見るのを自動化したレベル」として扱いやすいです
● 財務省|為替介入実績・各種資料
- 為替介入実績や財政関連の資料が公開されています
- PDFやHTMLから、日付・金額などを抽出しておくと、介入の有無を一目で確認できます
● 総務省統計局|CPIなどの統計
- CPIをはじめとする各種統計が公開されています
- 公的統計は利用条件付きでの利用が想定されており、自分の分析用途に組み込む形での利用と相性が良いです
● FRED(セントルイス連銀)|経済・金利データ
- 金利やマクロ指標が豊富に揃っており、公式APIも提供されています
- 本格的に使う場合は HTML をスクレイピングするよりも、FRED APIを利用する方が推奨されます(APIキー取得と利用規約への同意が必要)
🟢 企業のIR・プレスリリース
例:
- トヨタ自動車
- ソニーグループ
- 任天堂
- NTT など
上場企業は、投資家向けに決算短信やIRニュースを公開しています。
これらは「多くの投資家がアクセスすること」が前提なので、
- タイトル
- 公表日
- 決算期
- キーワード(増収・減益 等)
などを1日1回だけ取得して、自分のExcelに一覧として並べる、という使い方がしやすいです。
🟡 オープンな経済データサービス(API前提)
● Trading Economics
- 経済指標や金利に関して、公式APIが提供されています
- HTMLページをスクレイピングするより、APIを使う方が規約上も安心で、データも安定しています。
- PAD から直接APIを叩く構成も可能ですが、本記事では「ブラウザ自動操作で画面から値を取得する」パターンに絞って説明します
🔴 本記事では扱わないサイトの例
- 証券会社(SBI証券、楽天証券など)
- Yahoo!ファイナンス
- 取引所や金融データベンダ(Bloomberg など)
これらは、利用規約上、自動取得や再利用が制限されているケースが多いため、
本記事の自動化対象からは外しています。
3. Power Automate for Desktop(PAD)でのスクレイピング構成
PADでは、おおまかに次のアクションを組み合わせています。
- 新しい Chrome を起動
- Web ページに移動
- Web ページ内のデータを抽出
- Web ページからテキストを抽出
- 変数に格納
- Excelワークシートに書き込み
BOJ・FRED・企業IRサイトなどから必要な情報を集め、
1つのExcelに書き込むフローを作成しました。
3-1. 「Web ページからテキストを抽出」の設定例
例えば、BOJサイト上の最新声明タイトルを取得したい場合:
- 対象ページにブラウザでアクセス
- PADのUI要素取得機能で、最新声明の見出し(h2 など)を選択
- 「Web ページからテキストを抽出」アクションで、そのUI要素を指定
- 抽出したテキストを変数(例:bojTitle)として保存
同様に、
- FRED の指標値
- 総務省のCPI
- 企業IRのタイトル
などをそれぞれ変数に格納していきます。
4. Excel 側は「数式だけ」+PADは「値を入れるだけ」
今回の構成では、VBAは一切使っていません。
Excel ファイル側に、あらかじめ次のようなシートと数式を用意しています。
- Indicators シート
- A2:米10年債利回り
- B2:日本の政策金
- C2:CPI
- D2:VIX
それらを元にした前日比・前週比・色分けなどの数式 - News シート
- A列:日付
- B列:企業IRのタイトル
- C列:要人発言の見出し
などを一覧化 - Dashboard シート
- 指標とニュースをまとめた日次ダッシュボード
- グラフやコメント欄など
PAD の役割はシンプルで、
- Indicators!A2 に米10年債利回りを代入
- Indicators!B2 に日本の政策金利を代入
- Indicators!C2 に最新のCPIを代入
- News シートの指定セルにニュースタイトルを追記
…といったように、「該当セルへ値を入れるだけ」です。
Excel 側は、セルに値が入った瞬間に数式が再計算されるため、
グラフや集計値が自動で更新され、日次レポートが完成します。
例えばこんな感じです。
5. 最終的な自動化フロー
今回構築したフロー全体は、次のような流れになります。
- PAD が Chrome/Edge を起動
- BOJ・財務省・総務省・FRED・企業IR 等の公開ページへアクセス
- 必要なテキスト(指標値・タイトル・日付など)を抽出
- 抽出した値を Excel の該当セルへ書き込み
- Excel の数式が自動的に集計・グラフ化
- 数秒で「その日のマーケット概況」を確認可能
これにより、毎朝の“情報集めだけの5〜10分”をほぼゼロにできました。
まとめ
- ファンダメンタルズ分析の「情報収集」部分は、PADで十分自動化できる
- 対象は ログイン不要の公開情報 に絞り、利用規約・著作権表示を尊重する
- 証券会社サイトや Yahoo!ファイナンスなど、利用規約で制限のあるサイトは対象外とする
- Excel 側はすべて数式で組み立て、PAD は値を入れるだけにすることで、VBA なしでも日次レポートが自動完成
- AI投資システムと組み合わせることで、「単純作業は機械、判断は人間」 という理想的な役割分担に近づける
以上です。
最後まで読んでくださりありがとうございました。
