파이썬으로 KRX에서 전종목 기본 정보 얻어오기

2021-02-09 • quantkrx, 주식, 종목코드 • 2 min read

이번 포스트에서는 코스피, 코스닥, 코넥스의 상장 종목들을의 기본 정보를 파이썬으로 획득하는 방법을 다룹니다. 한국거래소(KRX)에서 운영하는 기업공시채널 KIND라는 서비스가 있는데 여기서 정보를 얻어와 보겠습니다.

네이버 웨일이나 구글 크롬으로 접속하시길 추천드립니다.

상장법인 목록 다운받기

먼저 KIND에 접속합니다.

1

위 그림의 하단에 빨간 박스 표시한 상장법인상세정보 메뉴를 클릭합니다.

그럼 다음과 같은 화면이 나오는데 여기서 우측에 있는 상장법인목록 메뉴를 클릭합니다.

2

그럼 상장법인목록을 확인할 수 있는 페이지가 뜨는데 여기서 EXCEL 버튼을 누르면 전체 상장 법인 목록을 다운받을 수 있습니다.

3

상장법인 목록 파이썬으로 가져오기

이 파일을 파이썬으로 바로 다운 받을 수도 있습니다. 다양한 방법이 있겠지만 여기서는 pandasread_html 함수를 사용하겠습니다.

이제 개발자 도구를 열어봅니다. 웨일의 경우 다음과 같은 방법으로 개발자 도구를 열 수 있습니다.

  • 우측 상단의 버튼을 클릭하고 기타 / 고급기능 / 개발자 도구를 클릭
  • Ctrl + Shift + I
  • F12

그럼 다음과 같이 개발자 도구가 나타납니다. (브라우저 하단에 뜰 수도 있습니다.)

4

여기서 Network 탭으로 이동합니다. 이동한 다음 상장법인목록 페이지의 EXCEL 버튼을 클릭합니다.

그럼 개발자 도구의 Network 탭에 다음과 같이 요청 정보가 표시됩니다.

5

여기서 빨간색 박스로 표시한 Request URL을 확인하고 아래로 쭉 내려서 Form Data를 확인합니다.

6

이제 이 정보를 가지고 요청 코드를 작성합니다.

def get_stocks(market=None):
    market_type = ''
    if market == 'kospi':
        market_type = '&marketType=stockMkt'
    elif market == 'kosdaq':
        market_type = '&marketType=kosdaqMkt'
    elif market == 'konex':
        market_type = '&marketType=konexMkt'

    url = 'http://kind.krx.co.kr/corpgeneral/corpList.do?currentPageSize=5000&pageIndex=1&method=download&searchType=13{market_type}'.format(market_type=market_type)

    list_df_stocks = pd.read_html(url, header=0, converters={'종목코드': lambda x: str(x)})
    df_stocks = list_df_stocks[0]
    return df_stocks

read_html 함수를 호출할 때 첫 번째 행을 헤더로 인식하도록 headers=0을 넣어줬고 종목코드를 숫자로 인식하지 않도록 converters 인자를 주었습니다.

이렇게 코스피, 코스닥, 코넥스 전체 또는 시장 별로 종목 목록을 받아올 수 있습니다.

받아온 데이터에는 다음과 같이 회사명, 종목코드, 업종, 주요제품, 상장일, 결산월, 대표자명, 홈페이지, 지역 정보가 포함됩니다.

회사명 종목코드 업종 주요제품 상장일 결산월 대표자명 홈페이지 지역
DSR 155660 1차 비철금속 제조업 합섬섬유로프 2013-05-15 12월 홍석빈 http://www.dsr.com 부산광역시
GS글로벌 001250 상품 종합 도매업 수출입업(시멘트,철강금속,전기전자,섬유,기계화학),상품중개,광업,채석업/하수처리 서비스/부동산 임대 1976-06-26 12월 김태형 http://www.gsgcorp.com 서울특별시
HDC현대산업개발 294870 건물 건설업 외주주택, 자체공사, 일반건축, 토목 등 2018-06-12 12월 권순호, 정경구 http://www.hdc-dvp.com 서울특별시
KG케미칼 001390 기초 화학물질 제조업 콘크리트혼화제, 비료, 친환경농자재, 수처리제 1989-08-25 12월 곽정현, 김재익 http://www.kgchem.co.kr 울산광역시
LG이노텍 011070 전자부품 제조업 기타 전자부품 제조업 2008-07-24 12월 정철동 http://www.lginnotek.co.kr 서울특별시