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を取得する。
・過去の提出書類も取得可能のようである。