suminb / finance

경제적 자유로의 여정
BSD 4-Clause "Original" or "Old" License
131 stars 10 forks source link

전자공시(DART) 데이터 가져오기 #1

Closed suminb closed 7 years ago

suminb commented 7 years ago

작업 개요

전자공시 데이를 가져와서 구조화된 형태로 저장하고 관리함으로써 나중에 필요한 형태로 가공하거나, 필터링 해서 알림을 줄 수 있는 시스템을 만든다.

Example Request

curl 'http://m.dart.fss.or.kr/md3002/search.st?currentPage=2&maxResultCnt=15&corporationType=&textCrpNm=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90&textCrpCik=00126380&startDate=20160907&endDate=20170307&publicType=&publicOrgType=&reportName=&textPresenterNm=&finalReport=&lastRcpNo=20170303800956&totalPage=&textTerm=&_=1488893683281' -H 'Cookie: JSESSIONID=xkpZNbiUquaV4eRUBcjdaEa2OYEYZJhDKRMWmOrKoM6ixFJogocZBG5UhVgpY2lz.dart2_servlet_engine1' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8,ko;q=0.6' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://m.dart.fss.or.kr/html_mdart/MD1005.html?startDate=20160907&endDate=20170307&textCrpCik=00126380&screenid=md1001&stype=md1001&currentPage=1&corporationType=&textCrpNm=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90&textCrpNmAuto=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --compressed

Example Response

{
    "rlist": [{
        "curr_page": 3,
        "row_num": 31,
        "bsn_yr": null,
        "crc_gubun": "N",
        "crc_nm": null,
        "crp_rgs_cls": "P",
        "dsm_crp_cik": "00126380",
        "dcm_id": null,
        "dcm_no": null,
        "dcm_nm": null,
        "dcm_int_tp": "N",
        "flr_cik": "00725534",
        "ifm_nm": "삼성전자",
        "ifm_nm2": "권오현",
        "rpt_id": "00634",
        "rpt_nm": "임원ㆍ주요주주특정증권등소유상황보고서",
        "rcp_no": "20161222000173",
        "rcp_dm": "2016.12.22",
        "sub_com_tp": "N",
        "rpt_title": null,
        "dcm_tp": "0",
        "rptNm": "임원ㆍ주요주주특정증권등소유상황보고서 "
    }, {

NOTE: 여기서 20161222000173와 같은 값은 일종의 식별자로 보고서로 바로 넘어갈 수 있는 키가 된다.

http://m.dart.fss.or.kr/html_mdart/MD1007.html?rcpNo=20161222000173

문서의 세부 항목은 다음과 같이 접근 가능하다.

curl 'http://m.dart.fss.or.kr/report/main.do' -H 'Cookie: JSESSIONID=xkpZNbiUquaV4eRUBcjdaEa2OYEYZJhDKRMWmOrKoM6ixFJogocZBG5UhVgpY2lz.dart2_servlet_engine1' -H 'Origin: http://m.dart.fss.or.kr' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,ko;q=0.6' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html, */*; q=0.01' -H 'Referer: http://m.dart.fss.or.kr/html_mdart/MD1007.html?rcpNo=20161222000173' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --data 'rcpNo=20161222000173&dcmNo=5390164&eleId=2' --compressed

여기서 eleId가 세부 항목의 아이디로 보여진다.

TODO

onlymytho commented 6 years ago

혹시 보고서의 dcmNo도 알아내셨나요?

suminb commented 6 years ago

혹시 보고서의 dcmNo도 알아내셨나요?

아뇨, 그 부분은 자세히 보지 않았습니다.