virtual-insanity
← 뒤로

방법론: 한기평 재무제표 크롤링

budding fleeting 2026-03-13

한기평 재무제표 크롤링 방법론

목적: 상장 기업의 40년치(1984~) 별도/연결 재무제표를 한국기업평가에서 크롤링.


1. 인프라

항목 내용
크롤러 스크립트 ~/Downloads/kr_financial_crawler.py
설정 파일 ~/Downloads/한기평_크롤러.xlsm (아이디/비밀번호/기업목록)
결과 저장 ~/knowledge/600 데이터/650 재무데이터/한기평_재무제표/
의존성 Playwright(로그인), openpyxl(엑셀), requests(API)

2. 실행 방법

cd ~/Downloads
python3 kr_financial_crawler.py 삼성전자 현대중공업 LG에너지솔루션
  • xlsm 설정 파일에서 ID/PW 읽기 + CLI 인자로 기업명 오버라이드
  • 기업당 16세트 (별도/연결 x 재무요약/재무상태표/손익계산서/현금흐름표 x 결산/분기)
  • 소요 시간: 기업당 ~75초
  • 마지막 input() EOFError는 무시 (데이터 수집 정상 완료)

3. 결과 구조

  • 출력: KR_{기업명}_재무제표_{YYYYMMDD}.xlsx
  • 16개 시트: 별도_재무요약_결산, 별도_손익계산서_결산
  • Row 1: 연도 헤더 (1984/12 (결), 2024/12 (결), ...)
  • Rows: 계정과목 (매출액, EBIT, Op.EBIT, EBITDA, 공시 영업이익, 공시 EBITDA 등)
  • 단위: 백만원

4. 데이터 읽기

import openpyxl
wb = openpyxl.load_workbook('KR_{기업}_재무제표_{날짜}.xlsx', read_only=True, data_only=True)
ws = wb['별도_재무요약_결산']
# Row 1: 연도 헤더 (column별)
# Row 3: 매출액
# Row 6: EBIT (공시 영업이익)

5. 주의사항

  • 동일 연도에 2개 행이 있을 수 있음 (결산기준일 변경 등)
  • 별도 기준 — 연결 재무제표와 차이 발생 가능
  • 크롤링 후 볼트 600 데이터/650 재무데이터/한기평_재무제표/에 저장하고 _INDEX.md 갱신

6. 관련 도구

  • dart_kr_crosscheck.py: DART x 한기평 교차 검증 파이프라인
  • shipbuilding_excel_builder.py: 조선업 합산 재무제표 빌더 (Google Drive 업로드)
  • Google Drive folder: 1rwwLk7JnVvUU-VMnHsl37BvnBy4O213z ("4. 보고포맷_raw")

작성: 2026-03-13