josw123 / dart-fss

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

search_filings 과거연도 보고서 조회 안됨 #175

Closed ooinoing closed 1 month ago

ooinoing commented 1 month ago

안녕하세요. 사업보고서의 보고서 코드를 불러오는 과정에서 , 과거에 공시된 사업보고서가 조회되지 않는 이슈를 발견했습니다. 조회 되지 않는 기간은 기업에 따라 상이하지만, 밑에 예시로 적어놓은 AJ 네트웍스의 경우 2000-2007의 자료가 조회되지 않습니다. 확인 후 도움 주시면 감사하겠습니다.

stock_code = "095570" # AJ 네트웍스
corp = corp_list.find_by_stock_code(stock_code)
corp_info = corp.load()
corp_code = corp_info["corp_code"]
bgn_de = corp_info["est_dt"]
print(f"설립일 : {bgn_de}")

data=corp.search_filings(bgn_de= bgn_de, 
                    corp_cls="Y",
                    pblntf_detail_ty="A001",
                    page_no= 1,
                    page_count = 100
                    ).report_list
data[-1]

결과


  'corp_code': '00365387',
  'corp_name': 'AJ네트웍스',
  'flr_nm': 'AJ네트웍스',
  'rcept_dt': '20080331',
  'rcp_no': '20080331002812',
  'report_nm': '사업보고서 (2007.12)',
  'rm': '',
  'stock_code': '095570'}]```
josw123 commented 1 month ago

안녕하세요. 올려주신 AJ네트웍스를 DART 홈페이지에서 확인해보니 정기공시로 공시된것이 아닌 감사보고서 형태로 공시되어 발생하는 문제인것 같습니다.

image

현재 버전에서는 정기공시로 분류된 경우에만 재무제표를 검색하므로 감사보고서 형태인 경우에는 재무제표 검색이 진행되지 않습니다. 관련 문제는 다음 버전에서 수정을 진행하도록 하겠습니다.

ooinoing commented 1 month ago

안녕하세요 담당자님, 신속하게 답변주셔서 감사합니다.

담당하고 계신 오픈 다트의 api기능을 활용하 는 중에 추가적으로 드릴 질문이 있습니다.

1. 사업보고서 속 첨부파일(정관)을 다운받는 기능도 API로 구현이 되어있을까요?

2. 재무제표 외의 비정형데이터들을 정보들을 수집,관리하는 기법이 따로 있으시다면 알 수 있을까요?

답변주시면 진행 중인 작업에 큰 도움이 될 것 같습니다.

감사합니다. 좋은 하루 되세요!

2024년 8월 2일 (금) 오후 10:38, Sungwoo Jo @.***>님이 작성:

안녕하세요. 올려주신 AJ네트웍스를 DART 홈페이지에서 확인해보니 �정기공시로 공시된것이 아닌 감사보고서 형태로 공시되어 발생하는 문제인것 같습니다. image.png (view on web) https://github.com/user-attachments/assets/e7b35575-e447-421d-882a-dfe71d8c8743

현재 버전에서는 정기공시로 분류된 경우에만 재무제표를 검색하므로 감사보고서 형태인 경우에는 재무제표 검색이 진행되지 않습니다. 관련 문제는 다음 버전에서 수정을 진행하도록 하겠습니다.

— Reply to this email directly, view it on GitHub https://github.com/josw123/dart-fss/issues/175#issuecomment-2265425131, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXBSMMRZJHAQVLRGJLZKQSLZPODUPAVCNFSM6AAAAABL4ANHJGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVGQZDKMJTGE . You are receiving this because you authored the thread.Message ID: @.***>

josw123 commented 1 month ago

안녕하세요.

  1. 아래와 같이 사용하시면 정관을 추출 하실 수 있으실 것입니다. 단, 연도마다 사업보고서 양식이 변경되기 때문에 키워드 및 검색 결과는 변경될 수 있습니다. 그러므로 검색 조건은 따로 최적화를 진행하셔야 될것입니다.
    
    import dart_fss as dart
    corp_list = dart.get_corp_list()

corp = corp_list.find_by_corp_name('삼성전자', exactly=True)[0] #삼성전자의 경우 reports = samsung.search_filings(bgn_de='20200101', pblntf_detail_ty='a001')

r = reports[0] found_pages = r.find_all(includes=r'정\s*관', excludes=r'사항') #사업보고서 내부 페이지 검색 ("정관" 포함, "사항" 미포함)

found_pages 결과

{'pages': [],

'related_reports': [],

'attached_reports': [{'dcm_no': '9702868',

'dtd': 'dart4.xsd',

'ele_id': 1,

'length': '20697',

'offset': '592',

'rcp_no': '20240312000736',

'title': '정 관'}],

'attached_files': [],

'xbrlviewer': {'pages': [], 'attached_files': []}}

result = found_pages['attached_reports'][0].html # 정관페이지의 HTML 값 with open("output.html", "w") as file: file.write(str(result)) # HTML 파일롤 저장



2. 주석이나 표 데이터를 LLM(chatgpt, claude 등등)에 넣으시면 아마 데이터 추출을 쉽게 하실 수 있으실 것입니다.
ooinoing commented 1 month ago

안녕하세요 담당자님 덕분에 수월하게 작업할 수 있을 것 같습니다.

감사합니다!

2024년 8월 5일 (월) 오후 5:57, Sungwoo Jo @.***>님이 작성:

안녕하세요.

  1. 아래와 같이 사용하시면 정관을 추출 하실 수 있으실 것입니다. 단, 연도마다 사업보고서 양식이 변경되기 때문에 키워드 및 검색 결과는 변경될 수 있습니다. 그러므로 검색 조건은 따로 최적화를 진행하셔야 될것입니다.

import dart_fss as dartcorp_list = dart.get_corp_list() corp = corp_list.find_by_corp_name('삼성전자', exactly=True)[0] #삼성전자의 경우reports = samsung.search_filings(bgn_de='20200101', pblntf_detail_ty='a001') r = reports[0]found_pages = r.find_all(includes=r'정\s*관', excludes=r'사항') #사업보고서 내부 페이지 검색 ("정관" 포함, "사항" 미포함) # found_pages 결과# {'pages': [],# 'related_reports': [],# 'attached_reports': [{'dcm_no': '9702868',# 'dtd': 'dart4.xsd',# 'ele_id': 1,# 'length': '20697',# 'offset': '592',# 'rcp_no': '20240312000736',# 'title': '정 관'}],# 'attached_files': [],# 'xbrlviewer': {'pages': [], 'attached_files': []}}result = found_pages['attached_reports'][0].html # 정관페이지의 HTML 값with open("output.html", "w") as file: file.write(str(result)) # HTML 파일롤 저장

  1. 주석이나 표 데이터를 LLM(chatgpt, claude 등등)에 넣으시면 아마 데이터 추출을 쉽게 하실 수 있으실 것입니다.

— Reply to this email directly, view it on GitHub https://github.com/josw123/dart-fss/issues/175#issuecomment-2268534120, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXBSMMXVE7YMTQ6PEYD3Z5TZP45BJAVCNFSM6AAAAABL4ANHJGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRYGUZTIMJSGA . You are receiving this because you authored the thread.Message ID: @.***>