Python(파이썬)+Accounting(회계)

dart-fss 재무제표 크롤링(1) - 차입금 의존도(2)

prograccount 2020. 1. 11. 05:32

'dart-fss 재무제표 크롤링(1) - 차입금 의존도' 에 이은 글입니다.

 

다시한번, 우리가 만들고자 하는건 다음과 같습니다.

(1) 특정 물품을 입력하면

(2) 해당 물품을 취급하는 상장 회사들의 차입금 의존도를 결과값으로 나타낸다.

 

아래에 코드를 설명하겠습니다.


### 필요한 모듈 import
import dart_fss as dart
import pandas as pd

### 전자공시시스템에서 신청한 인증키를 받아와 DART API KEY
api_key='e---------------------------------------' 
dart.dart_set_api_key(api_key=api_key)

1. 필요한 모듈인 dart-fss 를 import 합니다.

2. 전자공시시스템에서 신청한 인증키를 받아와 DART API KEY 설정 합니다.

보안을 위해 제가 발급받은 api key는 공개하지 않겠습니다.

http://dart.fss.or.kr/dsap001/intro.do 에 가시면 api key를 발급받을 수 있습니다. (단, 회원가입 필요)

 

전자공시시스템 | 오픈API 소개

DART 오픈API는 DART 홈페이지에서 제공하고 있는 공시보고서 목록을 외부(기관, 기업, 개인 등)에서 활용할 수 있도록 제공하는 서비스 입니다. XML, JSON 등의 웹 기술을 이용하여 쉽게 공시 보고서 목록를 활용할 수 있습니다. 공시정보를 실시간으로 투명하게 이용할 수 있습니다. DART 홈페이지에서 조회할 수 있는 모든 공시보고서 목록을 실시간으로 제공합니다.(공시보고서 내용은 DART 홈페이지의 공시뷰어 이용) 공시정보를 목적에 맞게 사용

dart.fss.or.kr


이제부터 우리는 dart-fss 라는 강력한 library 를 통해서 우리가 원하는 정보를 불러올 수 있습니다.

다만, 데이터를 요청하고 불러오는데는 시간이 걸리기 때문에 한번 불러온 데이터는 xlsx 파일로 저장시킬 것입니다.

### 함수 : save_fs_product ###
### 해당 물품을 취급하는 상장회사 재무제표 Excel로 저장
### 인자 (product = 취급 물품)

def save_fs_product(product):
    stock_list = dart.get_crp_list(market='Y')
    product_crp_list = stock_list.find_by_product(product)
    
    for num in range(len(product_crp_list)):
        print(num,'번째')
        
        my_fs = product_crp_list[num].get_financial_statement(start_dt='20120101')
        my_fs.save()

필요한 데이터를 요청하고 저장하는 함수를 만드는 부분입니다.

함수의 첫째 줄 stock_list = dart.get_crp_list(market = 'Y')

dart-fss library를 통해 코스피 시장에 상장된 기업 리스트 불러오는 것입니다.

코스피 시장 이외에도 market 의 인자값을 'K'로 변경하면  코스닥 상장 기업리스트

'N'으로 변경하면 코스넥에 상장 기업리스트를 불러올 수 있습니다.

 

### 함수 : get_depender ###
### 물품취급 상장회사별 차입금 의존도
### 인자 (product : 취급물품)

def get_depender(product):
    stock_list = dart.get_crp_list(market='Y')
    product_crp_list = stock_list.find_by_product(product)
    
    for count in range(len(product_crp_list)):
        crp_cd = product_crp_list[count].crp_cd
        depender = make_depender(crp_cd)
        print('회사명 :',product_crp_list[count].crp_nm)
        print('차입금의존도 :',depender)