전자공시 사이트 http://dart.fss.or.kr
에서 하나씩 수작업으로 보던걸
api 를 통하면 한번에 전부 다 가져와 DB에 저장하거나
필요한 특정페이지만 종목별로 가져오게 하는 등 자기 입맛대로 자동화가 가능합니다.
그동안 개인적으로 전기, 당기 배당정보 필요한 종목별로 수작업으로 가져와 기록했는데
이게.. 거의 매년하는 반복 노가다라.. 큰맘먹고 이번에 자동화 해버렸음.
API 자체가 기간별 rcpNo 리스트를 가져오는 간단한 구조이니
http://dart.fss.or.kr/dsap001/intro.do 에서 제공하는 개발자 가이드 읽어보시고
example만 보면 대충 어떤 구조인지 금방 이해가시리라 봅니다.
example 을 돌리려면 각자 인증키가 필요한데
http://dart.fss.or.kr/dsap001/intro.do 의 인증키 신청란에 가셔서 회원가입하면 인증키를 받을수 있습니다
첨부된 dartapi_example.html 을 열어보면 아래와 같은 코드로 되어 있는데
파란색 부분 '' 에 삽입하면 돌아갑니다.
<!DOCTYPE html> < html> < head> < meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> < script type="text/javascript" src="dartapi.js"></script> < script type="text/javascript"> var auth_key = ''; // http://dart.fss.or.kr/dsap001/intro.do 에 가셔서 받은 인증키 여기에 입력
웹상이 아닌 로컬에서 돌리면 AJAX가 포함되어 있기에
IE는 '차단된 컨텐츠 허용' 을 해주면 돌아가고
크롬은 : CORS (Cross-origin resource sharing) 크로스 도메인 오류가 뜹니다.
크롬 해결방법은 크롬 앱스토어에서 "Allow-Control-Allow-Origin: *" 를 깔거나
크롬 띄울 단축아이콘 등록정보에서 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:\Example Dir"
빨간색부분을 추가해주시면 해결됨.
첨부된 예제는 종목코드에 해당하는 회사의 최신 정기공시의 rcpNo로 요약재무제표를 찾아 가져와서 뿌려주는 예제인데
이게 되면 코드 짜기에 따라 손쉽게 모두 자동화가 가능하겠죠.