한기평 재무제표 크롤링 방법론
목적: 상장 기업의 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