본문 바로가기

매트랩파이썬

[파이썬] Pykrx로 코스피, 코스닥 지수 OHCLV 크롤링 후 엑셀로 저장 하는 법

안녕하세요, 주람쥐 입니다. 

 

그러고 보니 파이썬으로 코스피, 코스닥 지수, 종목 데이터 크롤링 하는법도 올려야 할 것 같아,

 

새로운 카테고리를 하나 팠습니다. 바로 '매트랩파이썬' 카테고리입니다. 기대되죠??

 

 

오늘은 파이썬(Python)으로 코스피, 코스닥 지수 크롤링 하는 법 입니다. 

 

(글 마지막에 코드요약 있습니다 ㅎㅎ)

 

저는 github에 공개되어 있는 pykrx라는 모듈을 이용하였고 파이썬에서 쉽게 주가를 크롤링 할 수 있었습니다.

 

>>>>>github 링크<<<<<

GitHub - sharebook-kr/pykrx: KRX 주식 정보 스크래핑

 

 Github 페이지에서도 크롤링하는 방법이 자세하게 나와있어서, 링크보고 직접 코드 작성하셔도 좋고요.

 

저는 어떻게 pykrx를 활용해서 지수를 크롤링했는지 설명해드리도록 하겠습니다.

 

 

■ 코스피, 코스닥 주가지수 불러와서 엑셀에 저장하기

 

우선 파이썬 모듈 중 pykrx 라는 모듈을 불러옵니다.

 

import pykrx
from pykrx import stock
import pandas as pd

 

이렇게 모듈을 불러오고 나면, pykrx 안에 있는 함수를 사용할 준비가 된 것 입니다.

 

다음은 코스피 주가지수의 티커 list 를 tickers 변수에 불러옵니다.

 

tickers = stock.get_index_ticker_list()
print(tickers)

 

그러면 요렇게 지수의 티커들이 저장되죠.

 

코스피 인덱스 티커

 

코스닥 주가지수 티커는 다음과 같은 함수를 사용하면 됩니다. 'stock.get_index_ticker_list'  함수에 (market='KOSDAQ') 입력값을 추가하는 것이죠.

 

tickers_DAQ = stock.get_index_ticker_list(market='KOSDAQ')
print(tickers_DAQ)

 

코스닥 인덱스 티커

tickers 에 불러온 티커들을 for문을 이용해서 2000년 ~ 2023년 동안의 지수 포인트를 excel 파일로 저장해보겠습니다.

 

for i in tickers:
    df = stock.get_index_ohlcv("20000101", "20230606", i, "d")
    df.to_excel(excel_writer= i+'.xlsx')

 

 

이 때 사용하는 함수는 stock.get_index_ohlcv 입니다. 아래 그림을 참고하세요.

 

stock.get_index_ohlcv 함수 설명

 

위와 같이 데이터를 불러온 후 df 라는 dataframe 형 변수에 저장합니다.

 

그리고 df.to_excel 함수로 현재 경로에 엑셀파일을 저장하면 됩니다! 

 

코스피 지수(tick: 1001)의 지수가 저장된 엑셀파일을 열어보면 다음과 같이 시가, 고가, 저가, 종가, 거래량, 거래대금 데이터까지 저장된 것을 볼 수 있습니다.

 

코스피 200지수

 

코스닥도 똑같이,

 

for i in tickers_Daq:
    df = stock.get_index_ohlcv("20000101", "20230606", i, "d")
    df.to_excel(excel_writer= i+'.xlsx')

 

이렇게 코드를 작성해주시면 됩니다.

 

 

코스피, 코스닥 주가지수의 이름도 불러와보겠습니다.

 

■ 코스피, 코스닥 주가지수 이름 불러오기

 

코스피 지수 이름 불러오는 방법입니다.

 

이름이 꼭 필요한건 아니지만, 내가 찾은 티커의 종목명이 궁금해질 때가 있으니까요.

 

tickerlist = [];  
for ticker in stock.get_index_ticker_list():
    tickerlist.append([ticker, stock.get_index_ticker_name(ticker)])

 

티커와 stock_index_ticker_name으로 이름을 불러와 줍니다. 그리고 tickerlist 라는 list 형 변수에 저장합니다.

 

그리고 excel로 저장하기 위해서 dataframe으로 변환시켜 줍니다.

 

tickerlist_df = pd.DataFrame(tickerlist)
print(tickerlist_df)

 

코스피 지수 종목명

 

코스닥도 똑같이, 코드를 작성해서 print 해보면 각 틱의 종목명을 알 수 있습니다.

 

tickerlist = [];  
for ticker in stock.get_index_ticker_list(market='KOSDAQ'):
    tickerlist.append([ticker, stock.get_index_ticker_name(ticker)])    


tickerlist_df = pd.DataFrame(tickerlist)
print(tickerlist_df)

 

코스닥 지수 종목명

 

오늘은 코스피, 코스닥 지수를 파이썬으로 크롤링하는 방법에 대해 알아보았습니다.

 

다음은 코스피, 코스닥에 상장되어 있는 실제 종목들의 주가를 크롤링해보도록 하겠습니다.

 

 

김사합니다!

 

+) 코드 요약입니다 ㅎㅎ

#%% 코스피
for i in tickers:
    df = stock.get_index_ohlcv("20000101", "20230606", i, "d")
    df.to_excel(excel_writer= i+'.xlsx')

#%% 코스피 종목명
tickerlist = [];  
for ticker in stock.get_index_ticker_list():
    tickerlist.append([ticker, stock.get_index_ticker_name(ticker)])    
   
tickerlist_df = pd.DataFrame(tickerlist)
print(tickerlist_df)
   

#%% 코스닥
tickers_Daq = stock.get_index_ticker_list(market='KOSDAQ')
print(tickers_Daq)

#%%
for i in tickers_Daq:
    df = stock.get_index_ohlcv("20000101", "20230606", i, "d")
    df.to_excel(excel_writer= i+'.xlsx')

#%% 코스닥 종목명

tickerlist = [];  
for ticker in stock.get_index_ticker_list(market='KOSDAQ'):
    tickerlist.append([ticker, stock.get_index_ticker_name(ticker)])    
   
tickerlist_df = pd.DataFrame(tickerlist)
print(tickerlist_df)