파이썬 기업 재무제표 데이터, 쉽게 수집하는 방법은?
목차
파이썬으로 데이터를 수집하는 방법은 여러가지가 있다. 파일을 다운 받을 수도 있고, 웹크롤링을 할 수도 있다. 하지만, API로 제공되는 데이터를 수집하는 것이 가장 편리하다. 데이터 레이아웃이 정해져 있고, 웹크롤링을 할 때처럼 IP차단 등의 부담도 없기 때문이다. 기업 재무제표 데이터를 API로 수집할 수 있는 방법은 그 동안 없었다. 하지만, 이를 OPEN API로 공개했다. 오늘은 기업 재무제표 데이터를 파이썬에서 수집하는 방법에 대해서 알아보도록 하겠다. API를 이용해서 말이다.
API로 데이터를 수집하는 방법은?
사실 웹크롤링과 오픈API로 데이터를 수집하는 방법은 동일하다. 다만, 웹크롤링 하는 것은 웹페이지를 파싱하고, 원하는 부분을 추출해야 하기 때문에 더 번거럽고 힘들다. 오픈API로 데이터를 제공하는 경우에는 XML이나 JSON포맷으로 제공하기 때문에, 더 쉽게 수집할 수 있다.
최근에 전자공시 OPEN DART 시스템이 오픈되었다. 여기서는 기업의 재무제표 데이터를 API를 통해서 수집할 수 있다. API로 데이터를 수집하는 방법을 하나씩 알아보도록 하자.
( 오픈DART 시스템 바로가기 )
1) URL정보를 확인하다.
일단 API명세서를 참고해서 접속해야 하는 URL정보를 확인하다. 보통, 파라미터에 값을 넣어 원하는 값을 수집할 수 있도록 되어 있다. 기업 재무제표 중에서 배당금 데이터가 궁금해서 해당 항목을 확인해보았다.
[개발가이드] 메뉴에 [사업보고서 주요 항목]을 살펴보면, 배당에 관한 사항을 제공하고 있는 것을 알 수 있다. 요청인자로 4가지 항목을 제공해야 한다. 요청인자는 URL에 접속할 때, 입력파라미터로 넣어야 하는 정보들이다. 인증키, 고유번호, 사업연도, 보고서 코드에 해당하는 값을 넣어야 한다.
( 이 외에도 다양한 데이터를 제공하고 있다 )
인증키는 API로 요청하는 사람들을 인증하기 위해서 사용한다. 오픈DART시스템 홈페이지에 가입하고, 인증키를 신청하면 발급받을 수 있다.
2) 파이썬에서 해당 URL에 접속하다.
이제 파이썬에서 이 URL에 접속해야 한다. 접속하는 방법도 여러가지가 있는데, 파이썬에서 기본으로 제공하는 urllib모듈을 사용하도록 하겠다. requests모듈을 사용하는 경우도 있는데, 필자는 개인적으로 urllib모듈이 더 친숙하다. urllib모듈로 URL에 접속하는 방법에 대해서 자세한 내용이 궁금하다면, 아래 링크를 참조하도록 하자.
( 참조: 파이썬 urllib패키지로 웹크롤링 하는 방법 알아보기! )
from urllib.request import urlopen
CRTFC_KEY="인증키 입력"
corp_code="00126380"
bsns_year="2019"
# 11011:사업보고서
reprt_code="11011"
url="https://opendart.fss.or.kr/api/alotMatter.json?crtfc_key={}" \
"&corp_code={}&bsns_year={}&reprt_code={}".format(CRTFC_KEY,corp_code,bsns_year,reprt_code)
req=urlopen(url)
result=req.read()
3) 수집한 데이터 포맷에 맞게 파싱한다.
OPEN API의 경우 XML이나 JSON포맷으로 데이터를 제공한다. 데이터를 파싱하는 내용은 이전 포스팅에서도 많이 다루었으니 생략하도록 하겠다. 자세한 내용은 아래 포스팅을 참조하기 바란다.
( 참조: 파이썬으로 블리자드 디아블로3 API 이용하기! )
import json
import pandas as pd
result_json=json.loads(result)
print(result_json)
오늘은 이렇게 파이썬에서 API를 이용해서 기업제무제표 데이터를 수집하는 방법에 대해서 알아보았다. 시간이 흐를수록 점점 더 많은 데이터가 공개되고 있다. 주로 공공기관에서 다루는 데이터가 많이 공개되고 있는데, 앞으로는 민간기업에서 가지고 있는 데이터도 적절한 절차를 통해 수집할 수 있는 길이 열리면 좋을 듯 싶다.
'Python > 오픈 API 활용기' 카테고리의 다른 글
미국기업 재무제표 데이터 수집하는 방법은?! (2) | 2021.03.04 |
---|---|
가장 쉬운 아파트 실거래가 조회하고, 데이터 수집하는 방법은?! (4) | 2020.09.02 |
파이썬 퀀트투자, 알고리즘 개발부터 백테스트까지 zipline (3) | 2020.05.01 |
파이썬 실시간 주가, 주식시세 데이터 수집하는 방법은? (6) | 2020.04.28 |
로또 규칙, 로또 당첨그래프로 알아보는 방법은? (7) | 2020.04.03 |
파이썬 크롤링 예제, 메이저리그 경기 데이터 수집하기 (3) | 2019.08.16 |
NBA 오픈API사용을 도와주는 nba_api 라이브러리 알아보기! (2) | 2019.02.07 |
마이데이터 사업은 무엇인가? (0) | 2019.01.05 |