👀
【Python】XBRL形式の有価証券報告書のテキストデータを取得する
2024年4月よりEDINETのAPIの仕様がversion2に変更になっています。
XBRLファイルの取得とテキストデータの抽出については、以下のリンクをご確認ください。
はじめに
前回は、電子開示閲覧サイト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