웬디의 기묘한 이야기

글 작성자: WENDYS
반응형

ETF(상장지수펀드)는 기초지수의 성과를 추적하는 것이 목표인 인덱스펀드로, 거래소에 상장되어 있어서 개별주식과 마찬가지로 기존의 주식계좌를 통해 거래를 할 수 있습니다. 그 구성종목과 수량 등 자산구성내역(PDF)이 투명하게 공개되어 있고, 장중에는 실시간으로 순자산가치(NAV)가 제공되어 거래에 참고하실 수 있습니다. ETF는 1좌를 거래할 수 있는 최소한의 금액만으로 분산투자 효과를 누릴 수 있어 효율적인 투자수단이며, 펀드보다 운용보수가 낮고 주식에 적용되는 거래세도 붙지 않습니다.

 

ETF의 장점은 종목 선정 및 분산투자에 익숙하지 않은 상태에서도 안정적으로 자산을 운용하기에 적합하며, 또한 가격 변동이 그렇게 크지 않기 때문에 주식 초보가 투자하기에도 좋습니다.

 

 

https://finance.naver.com/sise/etf.nhn

위 링크에서 보게되면 Naver Finance에서 약 450개의 ETF 전체 종목을 가져올 수 있습니다.

beautiful soup 라이브러리를 이용하여 html 페이지를 가져와서 Parsing 하는 방법이 있을 테지만 간단하게 API 페이지를 이용하여 가져와보도록 하겠습니다.

 

NAVER FINANCE ETF ITEM LIST API

https://finance.naver.com/api/sise/etfItemList.nhn

{"resultCode":"success","result":{"etfItemList":[{"itemcode":"069500","etfTabCode":1,"itemname":"KODEX 200","nowVal":29465,"risefall":"5","changeVal":-315,"changeRate":-1.06,"nav":29522.0,"threeMonthEarnRate":8.841,"quant":3542631,"amonut":104730,"marketSum":92063}, ...
import requests
import json
from pandas.io.json import json_normalize

url = 'https://finance.naver.com/api/sise/etfItemList.nhn'
json_data = json.loads(requests.get(url).text)
df = json_normalize(json_data['result']['etfItemList'])

 

코드를 보면 너무나도 간다합니다. 단 3줄..

requests를 이용하여 Naver Finance API를 호출하여 전달받은 json은 json.loads를 통해 json data로 저장하였습니다. json data를 그냥 사용하기 불편하니 json_normalize 함수를 사용하여 Data Frame 형태로 변경하여 사용하면 됩니다.

 

 

 

NAVER FINANCE ETF ITEM LIST 엑셀 파일로 저장하기

가져온 ETF 종목 데이터를 pandas Data Frame 형태로 만들어주었으니 Excel 문서로 만드는것도 간단하게 처리할 수 있습니다. to_excel 함수를 이용하여 excel로 저장해보겠습니다.

만약 원하는 데이터만 저장하고싶은경우 data frame에서 원하는 항목만 담아서 저장하면 됩니다.

import requests
import json
from pandas.io.json import json_normalize

url = 'https://finance.naver.com/api/sise/etfItemList.nhn'
json_data = json.loads(requests.get(url).text)
df = json_normalize(json_data['result']['etfItemList'])

df.to_excel('etf_list.xlsx');

 

 

 

반응형