ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 네이버 금융에서 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 단기채권
    ....

    반응형
Designed by Tistory.