LoginSignup
6
8

More than 3 years have passed since last update.

EDINET APIをpythonで実行するまわりを調べてみた

Posted at

EDINET APIを実行する

 有報キャッチャーAPIは、証券コードを指定すると該当書類のZIPファイルが取得できるが、任意の日付にどの会社がどういう書類をEDINETに提出したかが分からない(任意の指定した日付で有報キャッチャーAPIが実行できない)ので、2019年春にEDINETのAPIがローンチしているので、そちらのAPIを試してみた。

edinet_api.py
import json
import requests
import datetime

def fn_getzipfile(docid):
      url2 = "https://disclosure.edinet-fsa.go.jp/api/v1/documents/" + docid
      params2 = { "type" : 1}
      fname = docid + ".zip"
      print('■'+ str(fname))

      # EDINET API_2:提出書類のZIP取得
      res = requests.get(url2, params=params2)

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

def fn_rtrv_edinet(ymd):

      url = "https://disclosure.edinet-fsa.go.jp/api/v1/documents.json"
      params = {"date": str(ymd), "type": 2}

      # EDINET API_1:提出書類の取得
      res = requests.get(url, params=params) 

      #print(res.text)
      #print(len(json_form["results"]))

      i = 0
      json_form = json.loads(res.text)
      for jsn in json_form["results"]:
            if str(jsn["docDescription"]).find("有価証券報告書")>-1 :
                if str(jsn["docDescription"]).find("内国投資信託受益証券")==-1 :
                    if str(jsn["docDescription"]).find("訂正")==-1 :
                        docid = jsn["docID"]
                        print('■' + str(docid))
                        i = i +1

                        #print(jsn)

                        lst = ['docID','SecuritiesCode','edinetCode','secCode','filerName']
                        lst = lst + ['submitDateTime','periodStart','periodEnd','docDescription']
                        for l in lst:
                              x= [print(jsn[l]) for j in jsn if l in j]
                        #fn_getzipfile(docid) 
      return i        

if __name__ == '__main__':

      # 日付
      date =  datetime.datetime.today().strftime("%Y-%m-%d")
      #
      date = "2018-06-28"
      print( date)

      r=fn_rtrv_edinet(date)
      print(r)

・まず任意の日付を指定してEDINET API(documents.json)を実行すると、その日に提出された提出書類一覧が取得できる。各書類にはdocidがあるので、このdocidを引数として再度APIを実行して提出書類のZIPを取得する。
・過去の提出書類も取得可能のようである。

※参考
http://itref.fc2web.com/lang/python/edinet.html

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8