補助金・助成金の情報収集は、条件を変えるたびに手作業でやり直しになります。「今月申請できるもの」を一覧にするだけで、毎回30分近くかかります。
この検証では、公的な支援情報サイトから条件に合う補助金を自動取得してExcelに出力するワークフローを構築しました。手動30分が自動5分になっています。
この検証の概要
検証日 | 2026年5月10日(単日) |
|---|---|
構成 | J-Net21(中小機構運営)+ Browser Use CLI + Claude Code + Python(openpyxl) |
やりたかったこと | 補助金情報の自動収集・フィルタリング・Excel出力を一気通貫で行う |
成果 | 全131件から条件に合う56件を抽出してExcel出力/Claude Codeスキルとしてパッケージ化 |
所要時間 | 全5ページ取得約15〜20秒/対話含む総所要時間 約10分 |
効果 | 手動30分/回 → 自動5分/回 |
判定 | 即座に導入推奨(★5/5) |
対象は公的機関が運営する公開情報サイトです。取得にあたっては利用規約の範囲内で実施しています。
結論:検索条件の「基準」で結果が別物になる
この検証で最も実務的な発見です。
「公開日基準」と「募集期間基準」で、まったく異なる結果になります。
フィルタ基準 | 結果 |
|---|---|
掲載日基準(直近1ヶ月) | 67件 |
募集期間基準(2026年5月に申請可能) | 56件 |
知りたいのはたいてい後者です。「最近掲載された補助金」と「今申請できる補助金」は別物だからです。掲載が古くても募集中のものは申請できますし、掲載されたばかりでも募集開始前のものがあります。
この使い分けは最初に確認すべき項目です。基準を間違えると、集めた一覧が目的に合いません。
もう1つ、データの性質として「期間記載なし」が多数(67件)存在します。通年型の制度が多いと見られます。
フォームのパラメータを丸ごと解読する
自動化の起点になった作業です。
JavaScriptの実行でフォームを直接探索し、検索パラメータ(分野・種別・地域・期間・カテゴリ)を完全に解読しました。
具体的な手法として、次が有効でした。
document.querySelectorAll('input[type=checkbox]')
→ 全チェックボックスを name / value / label ごとに取得検索フォームのUIを操作する代わりに、URLパラメータを直接組み立てるという方針です。これができると、条件変更がURLの書き換えだけで済みます。
ページネーションも同様です。ページ内のリンクを取得して実際のURL構造を確認することで、正しい遷移方法が分かりました。
URLパラメータで効かないものもある
一方で、思い通りにいかない部分もありました。
日付範囲フィルタ(startDate / endDate)はURLパラメータでは機能しません。
対処はPythonで全件取得した後にフィルタするという方針です。
「サーバー側で絞れるものは絞る、絞れないものは取得してから絞る」——この切り分けを早めに確認しておくと、無駄な試行錯誤を避けられます。
Browser Use CLIの基本パターン
安定して動いた操作の型です。
browser-use open URL → sleep 2 → browser-use eval "JS"この3ステップが基本パターンとして安定します。ページのロード前にJavaScriptを実行すると空配列が返るため、sleep を挟むことが必要でした。
また、この検証時点では以下の制約がありました。
やりたいこと | 状況 | 代替手段 |
|---|---|---|
テキスト抽出 |
|
|
待機 |
| シェルの |
フォーム送信 | submitボタンをクリックすると別ページへ飛ぶ | URLパラメータを直接組み立てる |
専用コマンドがなくても、JavaScriptを実行できれば大抵のことはできます。この柔軟性が eval の価値です。
日本語の日付表記をどう扱うか
日本のサイトを扱う際に必要になる処理です。
正規表現 募集期間[::]\s*(\S+?~\S+) で日本語の募集期間表記を確実に抽出できました。
ポイントは [::] です。全角コロンと半角コロンの両方に対応させています。日本語のページでは表記が混在することがあります。
パース時は年月日を - に置換してから datetime.strptime(s, '%Y-%m-%d') に渡すという方法をとりました。
出力はExcelで渡す
成果物の形式も重要な判断です。
- 色分け(橙・黄・白/薄青)
- ヘッダー固定
- 2シート構成(一覧+検索条件シート)
検索条件をシートとして残している点が実務的です。「この一覧はどういう条件で取ったのか」が後から分かります。数ヶ月後に見返したとき、条件が分からないリストは使えません。
スキルとして再利用可能にする
この検証は、単発の自動化で終わっていません。
Claude Codeのスキルとして実装・パッケージ化し、トリガーフレーズから即実行できる状態にしています。
また、処理を分割しているのも設計上のポイントです。
fetch_and_filter.py— 取得とフィルタcreate_excel.py— Excel出力
個別に呼び出せるようにしておくと、出力形式だけ変えたいときに取得部分を再利用できます。中間データをJSONで持つことで、他ツールとの連携も可能になります。
コストと効果
項目 | 内容 |
|---|---|
初期設定 | 0分(CLIインストール済みの場合) |
構築時間 | 約60分(パラメータ解析・スクリプト作成) |
費用 | ほぼ0円(対象サイト無料・CLIはOSS・LLM利用料のみ) |
削減効果 | 手動30分/回 → 自動5分/回(25分削減) |
月次想定 | 週1回×4回で月100分の工数削減 |
初回の利用で構築コストを回収できる計算です。
懸念点
- ページ構造の変更(サイトリニューアル)に弱い — JavaScriptの修正が必要になる
- 認証が必要なサイトはセッション管理が別途必要
sleepのタイミングはネットワーク環境により調整が必要な場合がある
スクレイピングベースの自動化は、相手側の構造に依存します。壊れる前提で、修正しやすい形にしておくことが重要です。
よくある質問
「今月申請できる補助金」を調べるには?
掲載日基準ではなく募集期間基準でフィルタしてください。この検証では掲載日基準67件に対し、募集期間基準では56件と結果が大きく異なりました。
専用の抽出コマンドがなくても自動化できますか?
できます。JavaScriptを実行できれば、DOMから任意の情報を取り出せます。この検証でもフォームパラメータの完全解読からデータ抽出まで、すべて eval で行っています。
取得結果が空になります
ページのロード前に実行している可能性があります。open の後に sleep 2 を挟んでください。
他の用途にも使えますか?
認証不要の公開サイトであれば同じ方法が適用できます。検索条件をパラメータ化しておけば、条件を変えるだけで再利用できます。
まとめ
- 「掲載日基準」と「募集期間基準」で結果が別物になる。目的に合う基準を最初に確認する
- 検索フォームはUIを操作せず、パラメータを解読してURLを直接組み立てる
- サーバー側で絞れないフィルタは、全件取得してから処理する
- 基本パターンは
open → sleep → eval。ロード前の実行を避ける - 日本語の日付表記は全角・半角コロンの両方に対応させる
- 出力には検索条件シートを添える。後から条件が分からないリストは使えない
- 取得とExcel出力を分けておくと、出力形式だけの変更が容易になる
公開情報の収集は、条件が固まっていれば自動化しやすい領域です。何を基準に絞るかを最初に決めておくと、そのまま繰り返し使える仕組みになります。
株式会社AI棒では、こうしたAI活用の検証を日々行い、企業のリサーチ業務の自動化を支援しています。ご相談はお問い合わせフォームから、継続的な伴走支援についてはAI参謀をご覧ください。
