주가예측

한국거래소 전체지수 시세 - python requests (2)

prograccount 2021. 7. 22. 16:57

본 글은

한국거래소 전체지수 시세 - python requests (1)

 

한국거래소 전종목 시세 - python requests (1)

주가 데이터는 많은 곳에서 제공하고 있다. 각종 금융사, API 공급업자, 한국거래소 등 이 중 가장 공신력 있는 기관이자 원천인 한국거래소에서 운영중인 KRX 정보데이터시스템 에서 주가 데이터

progr-account.tistory.com

에서 이어지는 글입니다.


1. 필요한 모듈(Module) import

import requests
import json
import pandas as pd

 

1-1) requests

python에서 web에서 제공해주는 정보를 요청하고 받아오기 위한 모듈

1-2) json

requests에서 받아온 정보를 python 에서 활용할 수 있는 type으로 변형하기 위한 모듈

1-3) pandas

받아온 데이터를 정렬하고 쉽게 볼 수 있는 모듈

 

2. 함수 생성

def get_stock_Indices(date): ### date type : str(),,, ex) '2010722'
    
    url = 'http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd'
    
    data = {'bld': 'dbms/MDC/STAT/standard/MDCSTAT00101',
    'idxIndMidclssCd': '01',
    'trdDd': date, ### date type : str(),,, ex) '2010722'
    'share': '2',
    'money': '3',
    'csvxls_isNo': 'false'}
    
    response = requests.post(url, data=data) ### get이 아님에 유의
    stock_data = response.json()['output'] ### 불러온 정보를 json으로 추출하면 dict()구조인데 원하는 정보는 key:'output'에 있다.
    
    return stock_data

2-1) 인수 date

KRX 정보데이터시스템에서 전체지수 시세를 날짜별로 제공해 주시 때문에

함수의 변수를 날짜(date)로 지정해 준다.

 

2-2) url

한국거래소 전체지수 시세 - python requests (1)

위의 글에서 확인한 URL을 입력

 

2-3) data

형식(type)은 dict(딕셔너리)이다.

이또한 한국거래소 전체지수 시세 - python requests (1)에서 확인했던 Form Data를 입력해 준다.

 

2-4) requests.post(url, data=data)

 - requests에서는 정보를 입력, 요청할 때 GET 으로 할지 POST로 할지 입력해 주어야 한다.

 - 아래의 사진을 보면 한국거래소 전체지수 시세 - python requests (1) 에서 확인했던 Network 파일의 Headers에

POST 방식임을 확인할 수 있다.

- requests 모듈의 인수인 url 과 data를 알맞게 작성해준다. → requests.post(url, data=data)

 

2-5) json 형태 추출

불러온 정보를 json으로 추출하면 dict()구조인데 원하는 정보는 key:'output'에 있다.

 

2-6) return 

우리가 원하는 정보를 담고있는 stock_data를 반환해주자.

 

짜잔~

하지만 이렇게는 보기가 어려우니 표로 만들어 준다.

stock_data = get_stock_Indices('20210722')
pd.DataFrame(stock_data)

이번 글은 여기서 마무리하며

다음 글에서

과거 기간 모든 날짜의 정보를 불러와서 저장하고 정렬하는 법을 서술해보도록 하겠습니다.

한국거래소 전체지수 시세 - python requests (3) 에서 계속

 


전체코드

import requests
import json
import pandas as pd

def get_stock_Indices(date): ### date type : str(),,, ex) '2010722'
    
    url = 'http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd'
    
    data = {'bld': 'dbms/MDC/STAT/standard/MDCSTAT00101',
    'idxIndMidclssCd': '01',
    'trdDd': date, ### date type : str(),,, ex) '2010722'
    'share': '2',
    'money': '3',
    'csvxls_isNo': 'false'}
    
    response = requests.post(url, data=data) ### get이 아님에 유의
    stock_data = response.json()['output'] ### 불러온 정보를 json으로 추출하면 dict()구조인데 원하는 정보는 key:'output'에 있다.
    
    return stock_data
    
stock_data = get_stock_Indices('20210722')
pd.DataFrame(stock_data)