Python プログラミング

【Python】EDINETのAPIを使って上場企業の決算情報をスクレイピングで取得する

この記事は約3分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です。

 

株式投資をやっていると、当然企業の決算情報や適時開示情報を確認したいことがあると思います。適時開示情報(XBRL)は、こちらの金融庁が提供している有価証券報告書などの開示書類を閲覧するサイト(EDINET)からダウンロードできるのですが、これを手動でポチポチクリックしてダウンロードしようと思うと大変な作業になります。

 

そういう情報を自動で取得できないものかと何となくずっと思っていたのですが、先日副業の案件でEDINETのAPIの使い方を教えてほしいとの依頼を受けた際に本腰を入れて知らべたので、そのときに調べた内容をブログにメモっておこうと思います。

 

EDINETとは

 

・APIドキュメント

http://itref.fc2web.com/lang/python/edinet.html

 

お役所仕事にしては珍しく、ドキュメントと一緒にPythonのサンプルコード付きと非常に親切な作りになっています。

 

#必要なライブラリの呼び出し
import requests
import json

# 書類一覧APIのエンドポイント
url = "https://disclosure.edinet-fsa.go.jp/api/v1/documents.json"
# 書類一覧APIのリクエストパラメータ
params = {
  "date" : '2021-04-11',
  "type" : 2
}

# 書類一覧APIの呼び出し
res = requests.get(url, params=params, verify=False)

 

# 一番上の書類IDを取得
docid = json.loads(res.text)['results'][0]['docID']

# 書類取得APIのエンドポイント
url = "https://disclosure.edinet-fsa.go.jp/api/v1/documents/" + docid

# 書類取得APIのリクエストパラメータ
params = {
  "type" : 2
}

# 出力ファイル名
filename = docid + ".pdf"

# 書類取得APIの呼び出し
res = requests.get(url, params=params, verify=False)

# ファイルへ出力
if res.status_code == 200:
  with open(filename, 'wb') as f:
    for chunk in res.iter_content(chunk_size=1024):
      f.write(chunk)

 

これでローカルファイルにPDFが出力されます。

 

ただ中身の決算情報を抽出する場合はXBRLをHTML形式に変換してスクレイピングして取得する必要があります。これが中々ややこしかったので、また別の記事に書きます。では~

 

参照:https://non-dimension.com/get-xbrldata/

 

 

コメント

タイトルとURLをコピーしました