Python/파이썬과 주식, 코인

네이버 금융에서 ETF 목록 갈무리(크롤링)하는 법

컴닥 2019. 11. 2. 22:06
반응형

1990년대 PC 통신이 유행하던 시절, PC 통신 유저들은 순한글 용어를 많이 썼습니다.

당시 단말기 화면에 출력되는 TEXT들을 TEXT 파일로 저장하는 걸 갈무리(캡쳐)라고 했었는데요.

크롤링 대신 사용해도 괜찮을 것 같지 않나요?

 

* 네이버 정책의 변화에 따라 작동되지 않을 수도 있습니다. 

* 실제 투자에 사용하지 마십시오. 

 

네이버 금융 > 국내증시 > ETF 페이지에 ETF 전체 목록이 있습니다. 

 

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

 

 

1. 이것을 셀레니움을 이용해 크롤링하는 방법도 있습니다만.....

 

2. 조금 더 깔끔한 방법이 있습니다. 크롬에서 F12로 소스를 열어봅니다.

AJAX를 이용해 ETF 리스트 테이블을 업데이트 하네요. ^^

 

 

친절하게 주소와 매개변수도 알려줍니다. 자바 스크립트를 몰라도 다음 코드는 쉽게 이해하실 수 있을 것 같습니다. 

var etfItemListApiUrl = "/api/sise/etfItemList.nhn?etfType=" + etfTabCode + "&targetColumn=" + targetColumn + "&sortOrder=" + sortOrder;

 

매개변수 없이 주소( https://finance.naver.com/api/sise/etfItemList.nhn )로 접속해 봅니다.

브라우저에 JSON 파일이 하나 열립니다. 

ETF 전체 목록이군요. 

파이썬으로 정리해 보겠습니다. 

import json
import urllib.request

url = 'https://finance.naver.com/api/sise/etfItemList.nhn'
raw_data = urllib.request.urlopen(url).read().decode('CP949')
json_data = json.loads(raw_data)

for each in json_data['result']['etfItemList']:
    print(each['itemcode'], each['itemname'])

 

다음 목록을 볼 수 있습니다. 

 

069500 KODEX 200
102110 TIGER 200
122630 KODEX 레버리지
153130 KODEX 단기채권
....

반응형