DART API python 데이터 수집
Dart API를 이용해 재무제표 수집하기
이번에는 Dart API를 이용해 기업의 재무정보를 수집해보겠다.
마찬가지로 인증키를 발급받아야 한다.
https://opendart.fss.or.kr/intro/main.do
전자공시 OPENDART 시스템 | 오픈API 소개 | 오픈API 소개
오픈API 소개 오픈API 소개 오픈API 소개 DART에 공시되고있는 공시보고서 원문 등을 오픈API를 통해 활용할 수 있습니다. 활용을 원하시는 누구든지(개인, 기업, 기관 등) 이용하실 수 있습니다. DART
opendart.fss.or.kr
Opendart 시스템에 접속해서 가입 후 인증키를 발급받는다.
Dart API는 주의해야 할 것이 하나 있는데, 인증키 당 하루에 수집할 수 있는 데이터가 20,000건이다. 무리하게 반복적인 작업을 하면 하루 할당량이 끝나 접근을 못할 수 있으니 주의 바란다.
Python을 이용해서 재무제표를 수집해 보겠다.
다른 공시 정보도 수집이 가능하기 때문에 아래의 Documentation을 참고하기 바란다.
https://dart-fss.readthedocs.io/en/latest/dart_api.html
Open DART API — dart-fss documentation v0.3.10 documentation
© Copyright 2021, Sungwoo Jo Revision f2df35f9.
dart-fss.readthedocs.io
import pandas as pd
!pip install dart-fss
import dart_fss as dart
dart-fss 패키지 설치가 필요하다. pip 명령어를 통해 간단히 설치할 수 있다.
설치 후 pandas와 dart_fss를 import 해준다.
api_key='발급받은 인증키'
dart.set_api_key(api_key=api_key)
발급받은 인증키를 세팅해준다.
corp_list = dart.get_corp_list()
Dart에 공시된 회사 목록을 불러올 수 있다.
corp_list
Number of companies: 96800
현재 기준 총 96,800개가 조회된다.
기업이름의 경우 corp_list로 확일 할 수 있다.
기업이름, 공시번호등을 확인할 수 있다.
삼성전자의 재무제표를 조회해보자. 조회는 기업이름, 공시번호, 종목코드 등으로 조회할 수 있다. 자세한건 Documentaion에서 확인하고, 실습으로는 기업 이름으로 조회해보겠다.
target = corp_list.find_by_corp_name('삼성전자', exactly=True)[0]
fs = target.extract_fs(bgn_de='20100101')
fs.save()
위처럼 입력하면 삼성전자의 2010년부터 현재까지의 재무정보를 가져올 수 있다.
이렇게 현재 진행상황이 뜨면서 다운로드를 시작한다.
그런데 굉장히 느려서.. 어떨 때는 빠르고.. 기준을 모르겠다.
마지막 fs.save()는 가져온 정보를 엑셀로 저장한다. 그럼 스크립트를 실행한 위치에 파일이 보인다.
파일을 다운로드하여 실행해보면 총 8개의 탭이 있다.
순서대로 재무상태표 데이터, 컬럼명, 손익계산서, 컬럼명, 포괄손익계산서, 컬럼명, 현금흐름표, 컬럼명이다.
대략 120개 정도의 재무제표 항목 값을 받아올 수 있다.
엑셀 파일이라 따로 다운로드한 후 데이터를 확인했지만, python 내에서 가공 후 사용하면 분석 자료로 활용하기 좋을 것 같다.
기업을 분석하는데 있어 재무제표는 기본이 되는 사항이기 때문에 재무제표를 가공해 재무비율을 만들어 참고할 수 있도록 포맷을 만들어봐야겠다.
Dart api도 사용법이 쉽기 때문에 금방 따라서 구현할 수 있을 것이다.