josw123 / dart-fss

한국 금융감독원에서 운영하는 다트(Dart) 시스템 크롤링을 위한 라이브러리
https://github.com/josw123/dart-fss
MIT License
322 stars 110 forks source link

14, 15년 이전의 재무제표 정보를 어떻게 가져올 수 있는건가요? #36

Closed jeongmincha closed 4 years ago

jeongmincha commented 4 years ago

이 라이브러리를 쓰니까 bgn_de를 20141231 이전의 값도 넣을 수 있고 실제로 그 값을 가져올 수 있던데요.

https://opendart.fss.or.kr/disclosureinfo/fnltt/singl/main.do 와 같은데서 테스트할 때라던지 실제로 OPEN DART 자체가 제공하는 API 가이드라인에서는 (https://opendart.fss.or.kr/guide/detail.do?apiGrpCd=DS003&apiId=2019016) 2015년 이후부터의 추출 기능을 제공하는 것으로 보입니다.

그런데 본 라이브러리에서는 어떠한 원리(?)로 이 이상의 일을 해내시는지 원리가 궁금합니다.

josw123 commented 4 years ago

안녕하세요.

본 라이브러리에서는 DART에서 제공하는 상장기업 재무정보 API는 사용하지 않고 있습니다. 앞서 이야기하신 바와 같이 2015년 이전의 재무정보를 제공하지 않기 때문입니다.

2015년 이전의 재무정보를 추출하기 위해 Open DART에서 제공하는 공시정보 검색 기능 API를 이용하여 DART에 공시된 문서를 검색하고, 문서에 첨부된 XBRL 파일과 문서 내부의 내용을 직접 추출하여 재무정보를 추출하게 됩니다. 이로 인해 재무정보 추출을 위해 문서를 분석하는데 일정 시간이 걸리게 되며, 또한 Open DART의 "과도한 네트워크 접속(분당 100회 이상)은 서비스 이용이 제한" 규정을 준수하기 위해 의도적인 딜레이를 주었기 때문에 재무정보 추출에 시간이 걸리게 됩니다.

관련 코드는 dart_fss/fs/extract.py를 확인하시면 됩니다.