EXPANSION OF THINKING IN INVESTMENT

투자에 대한 생각의 확장

CODING/PYTHON

[Python] 3주차_DART 데이터 내 마음대로 활용하기(1편) (Feat. 스파르타코딩클럽)

메타닷 2022. 12. 8. 01:16
728x90
반응형

 

 

3주차 강의에서는

파이썬에서 DART 기업공시 데이터를 활용해 분석하는 것을 배웠다.

개인적으로 너무 유익했던 강의였다!

 

1편에는, 

1. DART의 Open API란 무엇인지, 

2. Dart Open API 키는 왜 발급받고, 어떻게 발급받는 것인지, 

3. Dart 라이브러리는 어떻게 활용하는지,

4. 전체 기업의 상장사/비상장사를 어떻게 구분하여 엑셀에 저장하는지, 

 

천천히 개념과 과정을 정리해나가며

다시 복습해보는 시간을 갖도록 하겠다. 

 

1. Dart Open API 

  - Open API 란, 데이터를 가져다 쓸 수 있게 서버의 ‘창구’를 열어둔 것이다.
  - Dart Open API를 활용하면 공시 정보를 ‘데이터 분석’에 활용할 수 있다. 
  - 일일이 공시자료를 보러가지 않아도, 분석을 할 수 있다.
  - 쉽게 활용할 수 있게 만든 ‘Dart FSS' 라이브러리도 있다.

 

 

2. Dart OpenAPI키 발급받기 

1)  API는 무엇인가

 API란 서버에 접근하는 ‘창구’와 같은 것이다.
은행에도 여러가지 데이터가 있지만, 우리는 ‘창구’를 활용해서 정해진 약속으로 정해진 데이터만 접근 할 수 있다.


 2) ‘키’는 왜 발급받아야 하나

누구에게나 열어둔 ‘창구’이기 때문에, 너무 많은 요청이 오면 서버가 매우 힘들다. 
그래서 인 당 할당량을 정해서 ‘key’를 발급하는 것이다. 요청시 이 'key'가 항상 필요하다. 

 

3) Dart OpenAPI 키 발급받기

  - https://opendart.fss.or.kr/uat/uia/egovLoginUsr.do 페이지를 클릭한다.

[OPEN DART 페이지]

 

  - 인증키 신청을 누르고 정보를 입력하면, 누구나 쉽게 키를 발급 받을 수 있다.

  - API 사용 환경은 ‘웹, 앱 모두’로 하고, 사용용도는 ‘개인 공부’라고 적는다.

 

[DART 인증키 신청]

 

- 개인 이메일에 들어가 '금융감독원 OPEN DART시스템 인증키 신청 확인 메일'에서 인증링크를 클릭한다.

[OPEN DART시스템 인증키 신청 개인인증]


  - `Open API 이용현황` 에 가면, 키를 볼 수 있다.

[Open API 이용현황]

 

[Open API Key확인]

 

 

3. Dart 라이브러리 활용하기 

 1) Dart-fss 라이브러리 설치하기

  - 공식 Document : https://dart-fss.readthedocs.io/en/latest/](https://dart-fss.readthedocs.io/en/latest/
  - Dart-fss 라이브러리는 Dart의 OpenAPI를 쉽게 사용할 수 있도록 만들어둔 코드다. 
  - 라이브러리를 활용하면 복잡한 개발 가이드 없이 데이터들을 얻을 수 있다.

[Dart-fss 라이브러리]

 

  - Colab에서 dart-fss를 설치한다. 

!pip install dart-fss

[dart-fss 설치하기]

 

2) 키 넣고, 구동하기

  - API 키를 입력하고, 구동해본다.

import dart_fss as dart_fss
import pandas as pd

api_key = '여기에 API 키를 입력'
dart_fss.set_api_key(api_key=api_key)

corp_list = dart_fss.get_corp_list()

corp_list.corps

[키 넣고, 구동하기]

 

 

4. 종목 정리하기 

1) 상장, 비상장 종목 정리하기

  - Dart 공식문서 페이지 목차에서 'Open DART API'를 클릭하면 여러 정보를 볼 수 있는 코드가 있는데, 복사하여 사용하면 된다. 

[Open DART API_공시정보]


  - 우선, 전체 종목을 보는 코드를 작성해본다.

all = dart_fss.api.filings.get_corp_code()
all

[전체 종목 코드 확인하기]

 

  -  DataFrame 형태로 볼 수도 있다.

df = pd.DataFrame(all)
df

[DataFrame 형태로 보기]


  - `stock_code` 가 있는 종목은 상장사, 없는 종목은 비상장사를 의미한다.

  - 상장사 df 리스트를 불러온 후, 상장사 숫자를 세어보기위해 .count()를 이용한다. 

df_listed = df[df['stock_code'].notnull()] 

[상장사 df 리스트 불러오기]
[상장사 df 리스트 숫자 세보기]

 

  - 비상장사 df 리스트도 불러오고, 숫자도 세어본다.

df_non_listed = df[df['stock_code'].isnull()]

[비상장사 df 리스트 불러오기]
[비상장사 df 리스트 숫자 세보기]


2) 엑셀로 저장해두기

  - 엑셀에 상장종목과 비상장종목으로 저장한 후, 두 파일 모두 다운로드 해본다. 

df_listed.to_excel('상장종목.xlsx')
df_non_listed.to_excel('비상장종목.xlsx')

[상장사, 비상장사 엑셀로 저장하기]



728x90
반응형