개발일지

DART API python 데이터 수집

kirion 2022. 12. 10. 10:44
반응형

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도 사용법이 쉽기 때문에 금방 따라서 구현할 수 있을 것이다. 

반응형