#!/usr/bin/env python
# coding: utf-8
#
# # OpenDartReader - 비상장 기업 데이터 조회와 활용
#
#
#
# ***2019-2022 [FinanceData.KR]()***
# ## 요약
#
# ```python
# import OpenDartReader
#
# api_key = '961aebb762ef44e8f93a36218897eb**********'
# dart = OpenDartReader(api_key)
#
# # [비바리퍼블리카] (송금서비스 토스로 유명한), 공시(감사보고서) 목록
# df = dart.list('비바리퍼블리카', start='1900')
#
# # [빅히트엔터테인먼트] (BTS로 유명한), 공시(감사보고서) 목록
# df = dart.list('빅히트엔터테인먼트', start='1900')
# df = dart.list('01204056', start='1900')
#
# # [쿠팡] "연결감사보고서 (2019.12)" 20200414000766 (삼일회계법인)
# # http://dart.fss.or.kr/dsaf001/main.do?rcpNo=20200414000766
# html_text = dart.document('20200414000766')
# df_list = pd.read_html(html_text)
# df_list[15] # 연결포괄손익계산서
# ```
#
#
#
# ## OpenDartReader 설치와 초기화
# In[1]:
get_ipython().system('pip install -q OpenDartReader')
# In[2]:
import OpenDartReader
# 발급받은 API키를 사용하세요
api_key = 'c19d19f2fae8006979b6e3670c8e8afe9d7d44cf'
dart = OpenDartReader(api_key)
# ## 비상장 회사의 공시보고서 목록
# In[9]:
df = dart.list('비바리퍼블리카', start='1900') # 토스
df
# In[4]:
# 보고서 링크
for ix, row in df.iterrows():
rcp_no = row['rcept_no']
print(f'http://dart.fss.or.kr/dsaf001/main.do?rcpNo={rcp_no}')
# ## 이름으로 확인 하기
# 회사 이름으로 식별이 고유하게 식별이 가능한지 확인해야 하는 것을 추천합니다.
# In[19]:
comps = dart.company_by_name('하이브')
len(comps)
# In[20]:
comps
# ## 공시목록 가져오기
# 조회를 해보고 정식명칭의 전체 회사명을 사용하십시오. `corp_code`를 쓰는 것이 가장 확실합니다.
# In[23]:
bighit = dart.list('하이브', start='1900')
bighit
# In[18]:
bighit = dart.list('01204056', start='1900')
bighit
# ## 공시 본문가져오기
# "연결감사보고서 (2019.12)"의 접수번호(rcept_no) '20200331000038'로 공시보고서 문서 전체를 얻을 수 있습니다. (형식은 XHTML 입니다)
#
# http://dart.fss.or.kr/dsaf001/main.do?rcpNo=20200331000038
#
#
#
# In[24]:
html_text = dart.document('20200331000038')
html_text[:1000] # 앞부분
# ## 재무데이터를 데이터프레임으로 읽어오기
# pandas의 read_html()로 페이지에 포함된 표를 손쉽게 DataFrame으로 읽을 수 있습니다.
# In[25]:
df_list = pd.read_html(html_text)
# In[26]:
len(df_list)
# 페이지안에 총 142개의 테이블(table)이 있습니다.
#
# 몇 번째 표가 `연결재무상태표`인지는 인덱스번호를 넣어가며 찾아야 합니다. 여기서는 15번째(인덱스로는 14)가 연결재무상태표 입니다.
# In[27]:
# 연결재무상태표
df = df_list[14]
remove_text = "&cr;(감사받지 아니한 재무제표)"
df.columns = [col.replace(remove_text, '') for col in df.columns]
df
# In[28]:
# 연결포괄손익계산서
df = df_list[18]
remove_text = "&cr;(감사받지 아니한 재무제표)"
df.columns = [col.replace(remove_text, '') for col in df.columns]
df
# In[29]:
# 연결현금흐름표
df = df_list[24]
remove_text = "&cr;(감사받지 아니한 재무제표)"
df.columns = [col.replace(remove_text, '') for col in df.columns]
df
# ## 쿠팡 손익계산서
# In[30]:
coupang = dart.list('쿠팡', start='1900')
coupang
# In[31]:
# http://dart.fss.or.kr/dsaf001/main.do?rcpNo=20200414000766
html_text = dart.document('20200414000766')
df_list = pd.read_html(html_text)
len(df_list)
# In[32]:
# 연결포괄손익계산서
df_list[15]
# 당기(2019년)에 영업손실 -7,205 억원을 기록했습니다. 전기(2018년)에 -1조1279억원에 비하면 많은 개선이 이루어졌습니다.
#
# ***2019-2022 [FinanceData.KR]()***