👀

【Python】XBRL形式の有価証券報告書のテキストデータを取得する

2022/07/17に公開

はじめに

前回は、電子開示閲覧サイトEDINETから有価証券報告書をXBRL形式で取得しました。
今回は、有価証券報告書のテキストデータ部分を取得する方法をご紹介していきます。

こちらのサイトを参考にさせていただきました

https://pypi.org/project/edinet-xbrl/

1. XBRLパーサのインストール

!pip install edinet-xbrl

2. ライブラリのインポート

#ライブラリーのインポート
import glob
from edinet_xbrl.edinet_xbrl_parser import EdinetXbrlParser

3. XBRLファイルの読み込み

パーサーにxbrlファイルのパスを渡し、keyとcontext_refを指定することで簡単に取得できます。

#パーサのインスタンス化
parser = EdinetXbrlParser()

#xbrlファイルのパスを指定
xbrl_path = './'+ docid + '/XBRL/PublicDoc/*.xbrl'
xbrl_path = glob.glob(xbrl_path)[0]

edinet_xbrl_object = parser.parse_file(xbrl_path)

#①事業等のリスクをとってみる
key='jpcrp_cor:BusinessRisksTextBlock'
context_ref='FilingDateInstant'
data = edinet_xbrl_object.get_data_by_context_ref(key, context_ref)
text_data = data.get_value()

#②経営方針、経営環境および対処すべき課題等をとってみる
key ='jpcrp_cor:BusinessPolicyBusinessEnvironmentIssuesToAddressEtcTextBlock'
context_ref='FilingDateInstant'
data = edinet_xbrl_object.get_data_by_context_ref(key, context_ref)
text_data = data.get_value()

4. テキストを見やすくする

今の状態では、エスケープシーケンスがたくさん入っているので、正規表現操作のライブラリreを使って、綺麗にします。

import re
text_data = re.sub('\s','',text_data)
text_data = re.sub('<.*?>','',text_data)

5. さいごに

これで有価証券報告書のテキストデータを取得することができました。
このテキストデータをもとに、自然言語処理を行なっていきたいと思います。

Discussion