---
title: "補助金情報の収集を自動化する｜手動30分を5分にしたブラウザ操作ワークフロー"
excerpt: "公的な支援情報サイトから条件に合う補助金を自動取得し、色分けExcelに出力する仕組みを構築しました。「掲載日基準」と「募集期間基準」で結果が別物になる点、検索フォームのパラメータを解読してURLを直接組み立てる手法、日本語の日付表記の扱いまでまとめています。"
author: "AI活編集部"
author_username: ai-katsu-editorial
published_at: 2026-05-10T00:00:00+00:00
verified_at: 2026-05-10T00:00:00+00:00
models: ["Claude Code"]
tools: ["Browser Use", "Excel"]
tasks: ["リサーチ・データ収集", "ツール検証"]
canonical_url: https://ai-katsu.jp/articles/jnet21-subsidy-search-workflow
---
# 補助金情報の収集を自動化する｜手動30分を5分にしたブラウザ操作ワークフロー

補助金・助成金の情報収集は、条件を変えるたびに手作業でやり直しになります。「今月申請できるもの」を一覧にするだけで、毎回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` を挟むことが必要でした。

また、この検証時点では以下の制約がありました。

| やりたいこと | 状況 | 代替手段 |
| --- | --- | --- |
| テキスト抽出 | `extract` コマンドは未実装 | `eval` + JavaScriptで代替 |
| 待機 | `wait N（秒数）` は未対応 | シェルの `sleep 2` で代替 |
| フォーム送信 | 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活用の検証を日々行い、企業のリサーチ業務の自動化を支援しています。ご相談は[お問い合わせフォーム](/contact)から、継続的な伴走支援については[AI参謀](/ai-sanbo)をご覧ください。
