wget 이나 curl 로 한국거래소 홈페이에서 주식 데이터를 다운로드 할 수 있을까요??

erich0929의 이미지

www.krx.co.kr 에 접속하면 종목별로 주식 데이터를 엑셀 파일로 다운로드 할 수 있습니다.
저는 이걸 wget 이나 curl로 받고 싶은데요...

일단 폼 태그는 이런 식으로 되어 있습니다.

<div class="search">
 
    <form id="exKrx" onkeydown="if(event.keyCode==13) doSearch();" onsubmit="return doSearch();" method="post" action="/por_kor/corelogic/process/m2/m2_1/m2_1_4/hpkor02001_04.xhtml?data-only=true" name="exKrx">
        <input id="se_key" type="hidden" value="TSIM5w+jLsm9LGMF0U4q1Q==" name="se_key"></input>
        <fieldset>
            <legend class="dpn"></legend>
            <table summary="종목 및 조회기간 조건을 선택하는 테이블 입니다."></table>
            <!--
 
             body_head_btn 
 
            -->
            <div class="body_head_btn">
                <input id="searchBtn" class="image" type="image" style="" alt="조회" name="searchBtn" src="http://inc.krx.co.kr/image/cm/btn/bt1ask.gif"></input>
                <input id="searchBtn2" type="submit" value="조회" name="searchBtn2" style="display: none;"></input>
                <a title="조회결과 다운로드" onclick="doExcelHtml(); return false;" href="?">
                    <img id="excelBtn" style="" alt="다운로드" src="http://inc.krx.co.kr/image/cm/btn/bt1download.gif"></img>
                </a>
                <input id="excelBtn2" type="submit" value="다운로드" name="excelBtn2" style="display: none;"></input>
            </div>
            <script type="text/javascript"></script>
            <!--
 
             //body_head_btn 
 
            -->
        </fieldset>
    </form>
 
</div>

저는 이런 식으로 해보았는데 실패네요...

wget -o ~/다운로드/test.xls --post-data="se_key=TSIM5w+jLsm9LGMF0U4q1Q==" <a href="http://www.krx.co.kr/por_kor/corelogic/process/m2/m2_1/m2_1_4/hpkor02001_04.xhtml?data-only=true
" rel="nofollow">http://www.krx.co.kr/por_kor/corelogic/process/m2/m2_1/m2_1_4/hpkor02001_04.xhtml?data-only=true
</a>

혹시 어떻게 가능한지 아시는 분이나 왜 안되는지 아시는 분 계실까요??

dontdieych의 이미지

자바스크립트 코드가 동작해야 다운로드가 되는 게 아닐까 생각 되네요. curl로는 자바스크립트 실행이나 ajax 호출 같은게 제대로 처리가 안되는 걸로 알고 있습니다.

http://docs.seleniumhq.org/download/

셀레니움이라고 저도 들어보기만 했는데 브라우저 엔진 자체를 이용해서 웹 페이지에서 하는 작업을 자동화 시킬 수 있습니다. 파이어폭스 확장 기능으로 설치 됩니다.

익명 사용자의 이미지

아래는 한국 거래소에서 삼성전자 월별 주가 엑셀 데이터를 다운로드 할 수 있는 URL입니다.
아래 주소는 HTTP Proxy를 통해 확인하거나 Firefox를 이용하신다면 cliget Extensions으로 손쉽게 확인할 수 있습니다.

curl --header 'Host: www.krx.co.kr' -X POST --data-binary 'ctnt=%3Cthead%3E%0D%0A%09%09%0D%0A%3Ctr%3E%0D%0A%09%09%09%0D%0A%3Cth+class%3D%22stringType%22+scope%3D%22col%22+x%3D%220%22+y%3D%220%22%3E%EA%B5%AC%EB%B6%84%0D%0A%3Cdiv+style%3D%22display%3A+block%3B+width%3A+0px%3B+height%3A+0px%3B+overflow%3A+hidden%3B+padding%3A+0px%3B+margin%3A+0px%3B%22%3E%3Cinput+type%3D%22button%22+id%3D%22cjux_sortHiddenBtn%22+value%3D%22%EC%98%A4%EB%A6%84%EC%A0%95%EB%A0%AC%22+style%3D%22font-size%3A+90%25%3B%22+%2F%3E%3C%2Fdiv%3E%3C%2Fth%3E%0D%0A%09%09%09%0D%0A%3Cth+class%3D%22intType%22+scope%3D%22col%22+x%3D%221%22+y%3D%220%22%3E%EC%B5%9C%EA%B3%A0%EA%B0%80%28%EC%A2%85%EA%B0%80%29%0D%0A%3Cdiv+style%3D%22display%3A+block%3B+width%3A+0px%3B+height%3A+0px%3B+overflow%3A+hidden%3B+padding%3A+0px%3B+margin%3A+0px%3B%22%3E%3Cinput+type%3D%22button%22+id%3D%22cjux_sortHiddenBtn%22+value%3D%22%EC%98%A4%EB%A6%84%EC%A0%95%EB%A0%AC%22+style%3D%22font-size%3A+90%25%3B%22+%2F%3E%3C%2Fdiv%3E%3C%2Fth%3E%0D%0A%09%09%09%0D%0A%3Cth+class%3D%22intType%22+scope%3D%22col%22+x%3D%222%22+y%3D%220%22%3E%EC%B5%9C%EC%A0%80%EA%B0%80%28%EC%A2%85%EA%B0%80%29%0D%0A%3Cdiv+style%3D%22display%3A+block%3B+width%3A+0px%3B+height%3A+0px%3B+overflow%3A+hidden%3B+padding%3A+0px%3B+margin%3A+0px%3B%22%3E%3Cinput+type%3D%22button%22+id%3D%22cjux_sortHiddenBtn%22+value%3D%22%EC%98%A4%EB%A6%84%EC%A0%95%EB%A0%AC%22+style%3D%22font-size%3A+90%25%3B%22+%2F%3E%3C%2Fdiv%3E%3C%2Fth%3E%0D%0A%09%09%09%0D%0A%3Cth+class%3D%22intType%22+scope%3D%22col%22+x%3D%223%22+y%3D%220%22%3E%EA%B1%B0%EB%9E%98%EB%9F%89%28%EC%9B%94%29%0D%0A%3Cdiv+style%3D%22display%3A+block%3B+width%3A+0px%3B+height%3A+0px%3B+overflow%3A+hidden%3B+padding%3A+0px%3B+margin%3A+0px%3B%22%3E%3Cinput+type%3D%22button%22+id%3D%22cjux_sortHiddenBtn%22+value%3D%22%EC%98%A4%EB%A6%84%EC%A0%95%EB%A0%AC%22+style%3D%22font-size%3A+90%25%3B%22+%2F%3E%3C%2Fdiv%3E%3C%2Fth%3E%0D%0A%09%09%09%0D%0A%3Cth+class%3D%22intType%22+scope%3D%22col%22+x%3D%224%22+y%3D%220%22%3E%EA%B1%B0%EB%9E%98%EB%8C%80%EA%B8%88%28%EC%9B%94%29%0D%0A%3Cdiv+style%3D%22display%3A+block%3B+width%3A+0px%3B+height%3A+0px%3B+overflow%3A+hidden%3B+padding%3A+0px%3B+margin%3A+0px%3B%22%3E%3Cinput+type%3D%22button%22+id%3D%22cjux_sortHiddenBtn%22+value%3D%22%EC%98%A4%EB%A6%84%EC%A0%95%EB%A0%AC%22+style%3D%22font-size%3A+90%25%3B%22+%2F%3E%3C%2Fdiv%3E%3C%2Fth%3E%0D%0A%09%09%3C%2Ftr%3E%09%09%09%09%0D%0A%09%3C%2Fthead%3E%3Ctbody%3E%3Ctr%3E%0D%0A%3Ctd%3E2014%2F03%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C325%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C315%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E400%2C086%3C%2Ftd%3E%0D%0A%3Ctd%3E529%2C771%2C995%2C700%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2014%2F02%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C349%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C237%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E4%2C230%2C976%3C%2Ftd%3E%0D%0A%3Ctd%3E5%2C478%2C584%2C001%2C347%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2014%2F01%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C328%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C272%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E6%2C360%2C306%3C%2Ftd%3E%0D%0A%3Ctd%3E8%2C269%2C643%2C773%2C347%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F12%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C467%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C372%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E4%2C081%2C514%3C%2Ftd%3E%0D%0A%3Ctd%3E5%2C792%2C868%2C002%2C965%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F11%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C500%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C410%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E3%2C965%2C399%3C%2Ftd%3E%0D%0A%3Ctd%3E5%2C788%2C510%2C857%2C295%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F10%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C500%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C382%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E4%2C398%2C536%3C%2Ftd%3E%0D%0A%3Ctd%3E6%2C361%2C826%2C819%2C010%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F09%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C425%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C337%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E4%2C889%2C929%3C%2Ftd%3E%0D%0A%3Ctd%3E6%2C727%2C829%2C459%2C367%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F08%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C368%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C217%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E5%2C399%2C871%3C%2Ftd%3E%0D%0A%3Ctd%3E6%2C906%2C815%2C973%2C237%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F07%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C335%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C226%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E6%2C426%2C545%3C%2Ftd%3E%0D%0A%3Ctd%3E8%2C259%2C649%2C188%2C543%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F06%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C540%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C261%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E8%2C311%2C860%3C%2Ftd%3E%0D%0A%3Ctd%3E11%2C462%2C563%2C166%2C296%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F05%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C544%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C476%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E4%2C930%2C400%3C%2Ftd%3E%0D%0A%3Ctd%3E7%2C422%2C091%2C783%2C656%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F04%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C540%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C475%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E5%2C058%2C603%3C%2Ftd%3E%0D%0A%3Ctd%3E7%2C628%2C038%2C466%2C287%3C%2Ftd%3E%3C%2Ftr%3E%0D%0A%3Ctr%3E%0D%0A%3Ctd%3E2013%2F03%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C560%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E1%2C445%2C000%3C%2Ftd%3E%0D%0A%3Ctd%3E5%2C640%2C262%3C%2Ftd%3E%0D%0A%3Ctd%3E8%2C443%2C793%2C280%2C750%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftbody%3E&filename=Data.xls' 'http://www.krx.co.kr/por_kor/transform' -o 'Data.xls' -L

bushi의 이미지

넘겨준 post data 를 변환해보니... 데이터를 가져오기 위한 query 가 아니라, 단순히 html 을 xls 로 변경하기 위한 query 같습니다.

ctnt=<thead>
 
<tr>
 
<th class="stringType" scope="col" x="0" y="0">구분
<div style="display: block; width: 0px; height: 0px; overflow: hidden; padding: 0px; margin: 0px;"><input type="button" id="cjux_sortHiddenBtn" value="오름정렬" style="font-size: 90%;" /></div></th>
 
<th class="intType" scope="col" x="1" y="0">최고가(종가)
<div style="display: block; width: 0px; height: 0px; overflow: hidden; padding: 0px; margin: 0px;"><input type="button" id="cjux_sortHiddenBtn" value="오름정렬" style="font-size: 90%;" /></div></th>
 
<th class="intType" scope="col" x="2" y="0">최저가(종가)
<div style="display: block; width: 0px; height: 0px; overflow: hidden; padding: 0px; margin: 0px;"><input type="button" id="cjux_sortHiddenBtn" value="오름정렬" style="font-size: 90%;" /></div></th>
 
<th class="intType" scope="col" x="3" y="0">거래량(월)
<div style="display: block; width: 0px; height: 0px; overflow: hidden; padding: 0px; margin: 0px;"><input type="button" id="cjux_sortHiddenBtn" value="오름정렬" style="font-size: 90%;" /></div></th>
 
<th class="intType" scope="col" x="4" y="0">거래대금(월)
<div style="display: block; width: 0px; height: 0px; overflow: hidden; padding: 0px; margin: 0px;"><input type="button" id="cjux_sortHiddenBtn" value="오름정렬" style="font-size: 90%;" /></div></th>
		</tr>				
	</thead><tbody><tr>
<td>2014/03</td>
<td>1,325,000</td>
<td>1,315,000</td>
<td>400,086</td>
<td>529,771,995,700</td></tr>
<tr>
<td>2014/02</td>
<td>1,349,000</td>
<td>1,237,000</td>
<td>4,230,976</td>
<td>5,478,584,001,347</td></tr>
<tr>
<td>2014/01</td>
<td>8,269,643,773,347</td></tr>
<tr>
<td>2013/12</td>
<td>1,467,000</td>
<td>1,372,000</td>
<td>4,081,514</td>
<td>5,792,868,002,965</td></tr>
<tr>
<td>2013/11</td>
<td>1,500,000</td>
<td>1,410,000</td>
<td>3,965,399</td>
<td>5,788,510,857,295</td></tr>
<tr>
<td>2013/10</td>
<td>1,500,000</td>
<td>1,382,000</td>
<td>4,398,536</td>
<td>6,361,826,819,010</td></tr>
<tr>
<td>2013/09</td>
<td>1,425,000</td>
<td>1,337,000</td>
<td>4,889,929</td>
<td>6,727,829,459,367</td></tr>
<tr>
<td>2013/08</td>
<td>1,368,000</td>
<td>1,217,000</td>
<td>5,399,871</td>
<td>6,906,815,973,237</td></tr>
<tr>
<td>2013/07</td>
<td>1,335,000</td>
<td>1,226,000</td>
<td>6,426,545</td>
<td>8,259,649,188,543</td></tr>
<tr>
<td>2013/06</td>
<td>1,540,000</td>
<td>1,261,000</td>
<td>8,311,860</td>
<td>11,462,563,166,296</td></tr>
<tr>
<td>2013/05</td>
<td>1,544,000</td>
<td>1,476,000</td>
<td>4,930,400</td>
<td>7,422,091,783,656</td></tr>
<tr>
<td>2013/04</td>
<td>1,540,000</td>
<td>1,475,000</td>
<td>5,058,603</td>
<td>7,628,038,466,287</td></tr>
<tr>
<td>2013/03</td>
<td>1,560,000</td>
<td>1,445,000</td>
<td>5,640,262</td>
<td>8,443,793,280,750</td></tr></tbody>&filename=Data.xls
익명 사용자의 이미지

서버에 저장된 xls를 다운받도록 사이트 구성된 게 아닌가 봐요

erich0929의 이미지

님이 말씀하신대로 firefox 에서 cliget 설치했습니다.
alt + 마우스 오른쪽 버튼 누르니 cliget 이라고 있네요.

그런데 어떻게 저렇게 생긴 url을 얻으셨나요??
다운로드 링크에 마우스 올려 놓고 했는데 안되네요...

혹시 마우스로 하지 않고 위와 같은 url을 얻을 수도 있나요??
종목별로 데이터를 받고 싶어서요.

Make it a better place...

erich0929의 이미지

다운로드 링크 누르면 나오는 대화상자 밑켠에 curl copy 가 있어서 누르다음
터미널에서 복사했는데 안되네요...

어떻게 url을 얻으신건지 좀...

Make it a better place...

익명 사용자의 이미지

http://www.krx.co.kr/m2/m2_1/m2_1_5/JHPKOR02001_05.jsp 페이지에서
다운로드 링크 누르면 생성되는 파일 다운로드 창 하단에
Download with cURL Copy 버튼을 이용해서 위의 URL을 얻었습니다.

익명 사용자의 이미지

위 주소는 어떻게 구하신건지 알수 있을까요?

bushi의 이미지

오래되서 기억이 나지 않습니다. 죄송합니다.

익명 사용자의 이미지

http://www.krx.co.kr/por_kor/common/COM00060.jsp?bld=/m2/m2_1/m2_1_5/hpk...

위 주소는 어떻게 구하신건지 알수 있을까요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.