전자공시시스템(DART) text mining
- 회사별 사업보고서의 존재(접수번호 기준) 리스트를 먼저 크롤링
- 상장법인목록 기준 기업 2263개 -> 사업보고서 10064개
- 이때 사업보고서는 제출된 사업보고서 외에 [기재정정]사업보고서 등의 형태도 존재한다. 이는 같은 해를 기준으로 최신 보고서를 가져왔다.
즉, '사업보고서 (2017.12)' 와 '[기재정정]사업보고서 (2017.12)'이 존재하면 더 최신에 제출된 '[기재정정]사업보고서 (2017.12)'를 가져온다.
그러나 여기에도 기존 형식에 일치하지 않은 사업보고서가 존재할 수 있다.
- 먼저 받은 접수번호를 이용해 url에 접속 (이를 for문 안에 같이 처리했었는데 나눴다.) (이 중에도 호스트와 연결이 끊기는 오류가 발생하였다.)
입력값: 자신의 API key이 담긴 텍스트 파일 이름, 저장할 데이터 파일 이름
함수 입력값: 확인하고 싶은 회사 이름 혹은 회사 목록 파일, 검색 시작 날짜, 검색 종료 날짜
함수 출력값: 해당 회사(들)의 사업보고서(들)
입력예 : crawler_crp_list(20180101,20181231,'삼성전자',None)
출력예 :
crp_nm crp_cd rcp_dt rpt_nm rcp_no
0 삼성전자 005930 20180402 사업보고서 (2017.12) 20180402005019
입력값: 위에서 가져온 사업보고서 리스트 파일 이름, 저장할 데이터 파일 이름
함수 입력값: 사업보고서 리스트 파일
함수 출력값: 사업보고서의 텍스트
입력예 : crawler_dart_text(crp_lists.xlsx)
출력예 :
회사명 회사코드 접수날짜 보고서 명 접수번호 text
0 삼성전자 5930 20180402 사업보고서 (2017.12) 2.01804E+13 "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 ...이하생략...
텍스트 단어 수는 전처리를 최대한 적게 하였다.
긍부정 사전에 포함된 단어수를 세기 위해 한글 단어만 비교하였다.