その先にあるもの…

전자공시시스템(DART) API를 사용하여 종목 정보 얻어오기 본문

코딩

전자공시시스템(DART) API를 사용하여 종목 정보 얻어오기

specialJ 2020. 9. 2. 15:46

주식이 불고 있는 2020년 naver에서 재무재표를 스크롤링 해서 정보를 얻오 올까 했다가 뭔가 아닌것 같다는 생각에

접어두고 있었는데 동장군님 블로그에서 DART API를 이용하여 재무재표를 얻어오는 것을 보고 이마를 탁!

 

사용 언어는 PYTHON 3.6

 

opendart.fss.or.kr/ 에 가서 api key를 신청하자~. 가입하고 신청하면 바로 키가 나온다.

 

dart api를 사용하기 편하게 파이썬 라이브러리로 만들어 주신분이 계신다.

pypi.org/project/dart-fss/

 

dart-fss

Web-scraping http://dart.fss.or.kr

pypi.org

라이브러리를 설치

 

import dart_fss as dart

 

# Open DART API KEY 설정 api_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

dart.set_api_key(api_key=api_key)

 

# DART 에 공시된 회사 리스트 불러오기

corp_list = dart.get_corp_list()

 

# 삼성전자 검색 samsung = corp_list.find_by_corp_name('삼성전자', exactly=True)[0]

 

# 2012년부터 연간 연결재무제표 불러오기

fs = samsung.extract_fs(bgn_de='20120101')

 

# 재무제표 검색 결과를 엑셀파일로 저장 ( 기본저장위치: 실행폴더/fsdata )

fs.save()

 

# 연결재무상태표 df_fs = fs['bs']

# 연결손익계산서 df_is = fs['is']

# 연결포괄손익계산서 df_ci = fs['cis']

# 현금흐름표 df_cf = fs['cf']

 

 

연결재무상태표 컬럼
연결손익계산서 컬럼

위와 같이 멀티 컬럼이라 컬럼을 손봐야 한다.

 

df_index = fs_is['[D310000] Income statement, by function of expense - Consolidated financial statements (Unit: KRW)']['label_ko']
df_contents = fs_is[['20190101-20191231', '20180101-20181231', '20170101-20171231', '20160101-20161231', '20150101-20151231', '20140101-20141231', '20130101-20131231']].droplevel( 1, axis=1 )

 

income_statement = pd.merge(df_index, df_contents, left_index=True, right_index=True)

income_statement.to_excel("income_statement.xlsx")

 

dataframe의 컬럼을 rename하고 데이터를 DB와 그래프로 표현해볼자.

 

Comments