josw123 / dart-fss

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

23년3Q 분기 재무제표 추출 시 에러 관련 문의드립니다. #147

Closed 3coCCoo3 closed 8 months ago

3coCCoo3 commented 8 months ago

안녕하세요, 다음과 같이 분기 재무제표를 추출하는데 최근 9월 report 것에 대해서 Warning message와 함께 누락되어 출력되는 현상이 발생했습니다. 혹시 제 컴퓨터 버전 설정문제인지 하여 문의 드립니다. 현재 사용중인 dart-fss는 0.4.5 버전 입니다.

사용 예시는 다음과 같으며, import dart_fss as dart code = '원익IPS' stock = corp_list.find_by_corp_name(code, exactly=True)[0] stock.extract_fs(bgn_de='20230101',report_tp=['half','quarter'],cumulative=False)

에러메세지는 아래와 같습니다. 다른 것은 다 잘되는데 딱 2023년 9월 분기자료만 RuntimeWarning 메세지와 함께 데이터가 출력되지 않습니다.

Traceback (most recent call last): File "C:\Users\USER\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1435, in extract statements, label_df = merge_fs(statements, nstatements, fs_tp=fs_tp, label_df=label_df) File "C:\Users\USER\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1016, in mergefs , ndf_columns = split_columns_concept_data(ndf.columns) File "C:\Users\USER\anaconda3\lib\site-packages\dart_fss\fs\extract.py", line 1144, in split_columns_concept_data df_column_date = regex.findall(column[0]) TypeError: expected string or bytes-like object C:\Users\USER\anaconda3\lib\site-packages\dart_fss\fs\extract.py:1440: RuntimeWarning: Unable to extract financial statements: {'rcp_no': '20231114001431', 'corp_code': '01135941', 'corp_name': '원익IPS', 'stock_code': '240810', 'corp_cls': 'K', 'report_nm': '분기보고서 (2023.09)', 'flr_nm': '원익IPS', 'rcept_dt': '20231114', 'rm': ''}. warnings.warn(warnings_text, RuntimeWarning)

3coCCoo3 commented 8 months ago

혹시 pandas 버전이 구버전이라 그런것일까요? 제가 사용하는 pandas 버전이 1.5.3으로 내려서 사용중이거든요.

josw123 commented 8 months ago

안녕하세요. 올려주신 코드 및 pandas 버전에서 위와 같은 RuntimeWarning을 확인하지 못했습니다. 혹시 추가적인 OS나 python 버전 등을 첨부해주시면 추가적인 테스트를 진행해보도록 하겠습니다.

3coCCoo3 commented 8 months ago

빠른 회신 감사드립니다. 이상하게도 cmd에서 python으로 들어가서 한줄 씩 직접실행해보면 위와 같은 Warning은 나오지 않았습니다. 그런데 데이터를 출력해보니 유첨 파일 처럼 중간중간 비는 데이터가 생겼습니다. 아래와 같이 실행하였습니다.

>>> api_key = 'api key'
>>> dart.set_api_key(api_key=api_key)
>>> corp_list = dart.get_corp_list()
>>> code = '원익IPS'
>>> stock = corp_list.find_by_corp_name(code, exactly=True)[0]
>>> 
[bs_test.csv](https://github.com/josw123/dart-fss/files/13469477/bs_test.csv)
fs_q =stock.extract_fs(bgn_de='20130101',report_tp='quarter',cumulative=False)

대차대조표 (fs_q[0]) 를 뽑아보니 분기데이터가 중간중간 비어있습니다. csv로 추출한 것 유첨드립니다. 확인 부탁드립니다.

3coCCoo3 commented 8 months ago

bs_test.csv

josw123 commented 8 months ago

중간중간 빈 데이터는 #146 의 버그때문입니다. 관련 버그는 수정 하였으며, 오늘 중으로 테스트 후 배포할 예정입니다.

3coCCoo3 commented 8 months ago

항상 감사합니다.

josw123 commented 8 months ago

dart-fss v0.4.6 배포를 통해 패치되었습니다. 버그 리포트 감사합니다.

3coCCoo3 commented 8 months ago

Perfect 하네요! 감사합니다.