上場企業が毎年公開するIR資料(有価証券報告書・株主総会招集通知など)を自動収集するクローラーと、集めたデータを参照・管理する業務システムを新規開発しました。数千社規模・年次サイクルの収集を、人手を介さず回せる状態にしています。
※ 社内利用のシステムのため社名は伏せております(調査・リサーチ業)。
背景・課題
調査業務の元データとなるIR資料を、担当者が各社のIRページを1社ずつ辿って手作業で収集していました。対象が数千社規模、かつ公開時期が集中するため、収集作業そのものが業務のボトルネックになっていました。
対応内容
- 上場企業のIRページを巡回し、対象資料を自動取得するクローラーの設計・実装
- JavaScript で描画される動的サイトへの対応(ヘッドレスブラウザ制御)
- 取得したファイル / メタデータの構造化とデータベース化、ウイルススキャン
- 収集状況の確認・再取得・検索を行う管理画面と API
- 定期実行・失敗検知・アラート通知を含む運用設計
技術構成
- インフラ: AWS CDK(VPC / ECS Fargate / Lambda / RDS for MySQL / S3 / CloudFront / ALB / EventBridge / SQS / SES / WAF / Secrets Manager / CloudWatch / Route53)
- クローラー: Python / Scrapy / scrapy-playwright(コンテナイメージを ECR 経由で実行)
- API: TypeScript / Hono(OpenAPI 定義)/ Prisma
- フロントエンド: Next.js / React / TypeScript
- 認証: Firebase Authentication
- 実行環境: Docker / Yarn workspaces による monorepo
ポイント
サイト構成は企業ごとにばらばらで、年によって変わることもあります。「取得できなかったこと」を検知して人が確認できる導線をあらかじめ用意し、完全自動化にこだわりすぎず、運用が回る形にまとめました。夜間のみ稼働させるスケジュール制御でランニングコストも抑えています。