josw123 / dart-fss

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

\anaconda3\lib\site-packages\dart_fss\fs\extract.py 상에서의 코드 오류부분에 대해서 보내드립니다. #99

Closed PeachgardenOwner closed 9 months ago

PeachgardenOwner commented 2 years ago

정말 올한해 josw123님이 만드신 프로그램덕을 톡톡히 보고있는 1인입니다.

직접 짤짤이 코드를 만들어쓰다 이런 어마무시한 프로그램을 만나고보니 감사할 따름입니다.

오류에대해 제보해드릴 방법을 찾다가 겨우겨우 이곳에 도달했습니다.

우선

첫번째 티플랙스 종목 조회시 발생하는 오류내역입니다.

Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1351, in extract statements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1367: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20210329001057', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '[기재정정]사업보고서 (2020.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20210329', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1351, in extract statements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1367: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20200330002413', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '사업보고서 (2019.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20200330', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1351, in extract statements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1367: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20190329001405', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '사업보고서 (2018.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20190329', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1351, in extract statements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1367: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20180330001918', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '[기재정정]사업보고서 (2017.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20180330', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1351, in extract statements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1367: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20170330001453', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '사업보고서 (2016.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20170330', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1379: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20110331001302', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '사업보고서 (2010.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20110331', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1379: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20100331000508', 'corp_code': '00497631', 'corp_name': '티플랙스', 'stock_code': '081150', 'corp_cls': 'K', 'report_nm': '사업보고서 (2009.12)', 'flr_nm': '티플랙스', 'rcept_dt': '20100331', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning)

다음으로는 남선알미늄관련 코드입니다.

Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1371, in extract nstatements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1385: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20180402003570', 'corp_code': '00107224', 'corp_name': '남선알미늄', 'stock_code': '008350', 'corp_cls': 'Y', 'report_nm': '사업보고서 (2017.12)', 'flr_nm': '남선알미늄', 'rcept_dt': '20180402', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1371, in extract nstatements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1385: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20170331002673', 'corp_code': '00107224', 'corp_name': '남선알미늄', 'stock_code': '008350', 'corp_cls': 'Y', 'report_nm': '사업보고서 (2016.12)', 'flr_nm': '남선알미늄', 'rcept_dt': '20170331', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1371, in extract nstatements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1385: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20160510002190', 'corp_code': '00107224', 'corp_name': '남선알미늄', 'stock_code': '008350', 'corp_cls': 'Y', 'report_nm': '[기재정정]사업보고서 (2015.12)', 'flr_nm': '남선알미늄', 'rcept_dt': '20160510', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1371, in extract nstatements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1385: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20150331000753', 'corp_code': '00107224', 'corp_name': '남선알미늄', 'stock_code': '008350', 'corp_cls': 'Y', 'report_nm': '[기재정정]사업보고서 (2014.12)', 'flr_nm': '남선알미늄', 'rcept_dt': '20150331', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1371, in extract nstatements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1385: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20140404001298', 'corp_code': '00107224', 'corp_name': '남선알미늄', 'stock_code': '008350', 'corp_cls': 'Y', 'report_nm': '[기재정정]사업보고서 (2013.12)', 'flr_nm': '남선알미늄', 'rcept_dt': '20140404', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning) Traceback (most recent call last): File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1371, in extract nstatements = analyze_report(report=report, File "C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1216, in analyze_report raise NotFoundConsolidated('Could not find consolidated financial statements') dart_fss.errors.errors.NotFoundConsolidated: Could not find consolidated financial statements C:\Users\andhf\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1385: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20130401002589', 'corp_code': '00107224', 'corp_name': '남선알미늄', 'stock_code': '008350', 'corp_cls': 'Y', 'report_nm': '사업보고서 (2012.12)', 'flr_nm': '남선알미늄', 'rcept_dt': '20130401', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning)

우선 지금도 그러는지는 모르겠습니다만, 예전 버전에서는 우리기술과 우리기술투자가 충돌하면서 데이터 추출을 못하는 경우가 있기도하고 워낙 비슷한 이름의 기업들이 많다보니 증권 코드를 이용해 검색을 하고 있습니다.

corp_list = dart.get_corp_list()

samsung = corp_list.find_by_stock_code('081150')

fs = samsung.extract_fs(bgn_de='20100101')

fs.save()

위처럼 기본 샘플로 제공하신 코드에서 증권 코드부분만 바꾸고 기간만 조정해서 계속 사용중입니다만,

이번에는 좀 처음보는 오류라서 제보해드립니다.

오류에 대한 결과값은 티플랙스의 경우는 10~15년도 까지만 추출 되엇으며

남선알미늄의 경우는 재무제표와 현금흐름표는 12-15년도 값이 비는 반면 손익계산서의 경우 12-20년 사이의 결과 값이 추출 되질 않았습니다.

티플랙스의 경우는 수기로 작업하며 나머지부분을 채워보앗더니 해당 누락구간의 계정과목이 1~2가지 다른부분이 있었습니다.

이름없던 과목이 몇가지 추가적으로 생성되거나 삭제된것이 존재해서 대략 5개정도의 부분을 추가하고 삭제하고 한듯 합니다.

이부분 참고하시어 프로그램 개선방향에 도움이 되었으면 합니다.

매번 프로그램을 킬때마다 감사함을 느낍니다.

감사합니다.