ITエンジニアの種籾(たねもみ)

IT技術とか株式投資とか。

「どにち株」 ダウンロードツール EDINET版 の設計

2020年 09月 16日

目次

概要

EDINET API を使って、有価証券報告書、四半期報告書、半期報告書をダウンロードする。

概要

コマンド仕様

パラメータとフォーマット 意味 省略時の扱い
start_date=yyyyMMdd 取得開始日 前回実行日
end_date=yyyyMMdd 取得終了日 実行日の前日

書類一覧

  • 引数は取得対象の日付。(EDINET ではメタ情報の操作日の意味)
  • EDINET API の書類一覧 API の type=2 の結果をそのまま生の書類情報として保存。
  • 書類情報の内容に応じて適切な処理をする。判断と対応は後述する。

書類情報による判断フロー

  • [縦覧の終了] 提出者 EDINET コードが null、かつ取下区分が”0”のとき

    • 縦覧終了した書類なので、何もしない
  • [書類の取下げ] 取下区分=1

    • 書類が取下げられたので、「特定書類の書類情報更新処理」をする。目的は過去の書類情報の更新。
  • [書類情報修正] 書類情報修正区分=1

    • 書類情報が訂正されたので、「特定書類の書類情報更新処理」をする。目的は過去の書類情報の更新。
  • [書類の不開示] 開示不開示区分=1

    • 書類が不開示に設定されたので、「特定書類の書類情報更新処理」をする。目的は過去の書類情報の更新。
  • [書類の不開示の解除] 開示不開示区分=3

    • 書類が不開示から更に解除に設定されたので、「特定書類の書類情報更新処理」をする。目的は過去の書類情報の更新。
  • [上記以外] 書類種別コードが 120,130,140,150,160

    • 有価証券報告書、四半期報告書、半期報告書のため、書類をダウンロードする。
  • [更に上記以外]

    • 関係ない書類のため、なにもしない。

特定書類の書類情報更新処理

書類の取下げ、情報修正、不開示とその解除で、元の書類情報の各種区分を更新する。 キーは書類管理番号だけなので、それから書類情報を探して区分を更新する。

本処理のパラメータは下記

  • 文書管理番号
  • 対象区分
  • 変更前区分コード
  • 変更後区分コード

ポイント

  • 変更前区分コードと一致することを確認してから更新する。
  • 変更前の、その日の書類一覧 API の結果「yyyyMMdd.json」の拡張子.json を操作日に変更してバックアップしておく。 操作日とは、実行日ではなく、EDINET で情報変更操作が発生した日で、ツール的には API のパラメータに指定した日付。

書類取得

  • 引数は書類管理番号
  • EDINET API の書類取得 API の type=2 の結果をそのまま生の書類情報として保存。
  • ストレージに保管後にそのファイルを開いて、レスポンスの正常チェックする。
  • 下2桁を除いた管理番号でディレクトリを作成して、その下に配置する。 1ディレクトリ内のファイル数が増大するのを回避しておく。

書類情報(メタ情報)マージ

過去から現在までの書類一覧 API の結果を読みなら、書類と書類情報が1対1で紐づくメタ情報を作成する。

  • [縦覧の終了] 提出者 EDINET コードが null、かつ取下区分が”0”のとき

    • 縦覧終了した書類なので、書類情報は削除。 書類一覧 API を取得時点で縦覧終了していたケースなので、書類もない。
  • [書類の取下げ] 取下区分に応じた処理

    • 1 は書類が取下げ情報なので削除。
    • 2 は取下げられた書類なので削除。
  • [書類情報修正] 書類情報修正区分に応じた処理

    • 1 書類情報の訂正後の情報なので、そのまま
    • 2 誤った書類情報なので削除。
  • [書類の不開示] 開示不開示区分に応じた処理

    • 1 書類の不開示情報なので削除。
    • 2 書類が不開示中なので削除。
    • 3 書類の不開示の解除情報なので削除。
  • [上記以外] 書類種別コードが 120,130,140,150,160

    • ほしい書類なので、そのまま。
  • [更に上記以外]

    • 関係ない書類のため削除。

作成後に、1つの書類管理番号に対して、1つの書類情報しかないことをチェックする。

広告