-
네이버 금융에서 ETF 목록 갈무리(크롤링)하는 법Python/파이썬과 주식 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 단기채권
....반응형