Pythonで早速EDINET APIいじってみた
企業の決算書や報告書を提供しているEDINET様が
昨日APIを公開してくれたので早速いじってみた。
APIは「書類一覧API」と「書類取得API」の2つが用意されている。
1.書類が発行された日付を元に、発行された書類を全て取得(書類一覧API)
2.その中から必要な書類のデータを取得(書類取得API)
詳しくはEDINET公式まで
以下サンプルコードとその実行結果
#書類一覧APIのやつ
import requests
#↓エンドポイント
#バージョンが変わるたびに”v1"の部分を変更する必要がある模様
url = "https://disclosure.edinet-fsa.go.jp/api/v1/documents.json"
#必須パラメータのdateをぶちこむ
#出力結果を変えるためにtypeを2にする(type=1だとmetadataしか出力されない)
params = {"date": "2018-07-30", "type": 2}
#このAPIはREST APIなのでverifyをFalseにして接続するときのSSLを無効化する
res = requests.get(url, params=params, verify=False)
print(res.text)
そしたらこんな感じなものが出力される
つぎ
#書類取得APIのやつ
#....api/v1/documents/までがルートエンドポイント
#その後ろに書類管理番号を追記する
#今回は先程のJPモルガンのdocIDを使う
url = "https://disclosure.edinet-fsa.go.jp/api/v1/documents/S100DP48"
#書類取得APIにはtypeパラメータが4つある。2はPDFを出力してくれる。
params = {"type": 2}
#出力先ファイル
file_name = "test.pdf"
#先ほどと同じ接続方法に加えて、取得ファイルが大きいときのために
#stream=Trueにすることでメモリに優しい接続方法にしておく
res = requests.get(url, params=params, verify=False, stream=True)
if res.status_code == 200:
#取得するpdfの大部分がバイナリ形式になっているのwbで書き込む
with open(file_name, 'wb') as f:
#念の為、小まめに書き込み、メモリに優しくしておく
for chunk in res.iter_content(chunk_size=1024):
f.write(chunk)
そしたらこんな感じのファイルができる
これを更に改良してファンダメンタル分析楽にしよ〜
この記事が気に入ったらサポートをしてみませんか?