Today_I_Learned

네이버 증권 ETF 시세 정보 및 항목 리스트 API 조회 파이썬 코드 예제

CONCAT 2023. 9. 30. 20:23
728x90

  • 네이버 증권의 ETF 시세 정보의 API에 접근하는 코드
  • FinanceDataReader에 유사한 접근할 수 있는 기능이 있지만, 단순 이름만 제공하고 시가총액 등 세부 내용엔 접근할 수 없다.
import requests
import pandas as pd

def get_etf_item_list():
    # 데이터 요청
    URL = 'https://finance.naver.com/api/sise/etfItemList.nhn'
    response = requests.get(URL)
    data = response.json().get('result').get('etfItemList')
    # 테이블화 & 컬럼 정리
    df = pd.DataFrame(data)
    df.columns = ['종목코드', '카테고리', '종목명', '현재가', '등락여부', '전일비', '등락률', 'NAV', '3개월수익률', '거래량', '거래대금', '시가총액']
    # 변수 변환
    df.등락여부 = df.등락여부.map({'2': '▲', '5': '▼'})
    df.카테고리 = df.카테고리.map({
        1: '국내 시장지수', 2: '국내 업종/테마', 3: '국내 파생',
        4: '해외 주식', 5: '원자재', 6: '채권', 7: '기타'})
    # 타입 처리
    df = df.astype({
        '현재가': int, '등락률': float, 'NAV': int, '3개월수익률': float,
        '거래량': int, '거래대금': int, '시가총액': int,
    }).set_index('종목코드')
    return df

get_etf_item_list()