Python/네이버증권API(Old)

[Python/파이썬] 네이버증권API 활용 - PER, PBR 기준으로 종목 검색(3/4)

CODE.J 2022. 11. 14. 22:02
반응형

https://marketward.tistory.com/3

 

[Python/파이썬]네이버증권API 활용 - 종목코드로 json 결과 확인(2/4)

https://marketward.tistory.com/2 [Python/파이썬]네이버증권API 활용 - 회사명, 종목코드 받아오기(1/4) *Python 3.9.13을 사용했습니다. 한국거래소에서는 국내 상장사(코스피/코스닥)에 대한 정보를 아래 링크

marketward.tistory.com

네이버증권API의 요약 정보 결과를 종목별로 json변환하였습니다.


*Python 3.9.13을 사용했습니다.

 

종목의 요약 정보를 바탕으로, 조건에 맞는 종목을 검색해보고자 합니다.

종목 검색에 앞서 지표별 간단한 설명을 아래와 같이 드립니다.

명칭 설명
EPS(Earnings Per Share) 주당순이익 유통 주식수를 기준으로 1주당 1년 간 얼마의 이익을 냈는지 알 수 있는 지표입니다.
PER(Price Earning Ratio) 주가수익비율 PER은 주가를 EPS로 나눈 값으로 주당 순이익 대비 주식 가격을 측정합니다.  숫자가 0에 가까울수록 주가 대비 영업이익이 좋은 것으로 판단합니다. 단, 마이너스(-) 이거나 측정이 안되는 경우는 적자 상태를 의미합니다.
PBR(Price to Book Ratio) 주가순자산비율 PBR은 주가를 BPS로 나눈 값으로 주당순자산가치(BPS, Book-value Per Share)는 기업의 순자산을 발행 주식수로 나눈 것입니다.
PBR이 0.7 이하면 매수를 적극 고려해야할 종목으로 판단하곤 합니다.

주식 전문가는 아니지만... 좋다는 지표 기준으로 종목을 검색하겠습니다.

"PER이 0보다 크고 2보다 작으면서 PBR이 0.7보다 작은 종목"을 찾아보겠습니다.

 

이전 시간에 모든 종목 정보를 json으로 읽어오는 처리를 했기에 아래의 코드만 추가하였습니다.

        #PER과 PBR을 변수로 지정합니다.
        per_value = json_data['per']
        pbr_value = json_data['pbr']
        #우선, PER 값이 있는 종목을 골라 냅니다.
        if per_value :
            #PER이 0보다 크고 2보다 작은 종목이면서 PBR이 0.7보다 작은 종목을 찾습니다.
            if 0 < per_value < 2 and 0.7 > pbr_value :
                print("[%s]의 per은 %s 입니다. (pbr %s)" %(item_name, per_value, pbr_value))

전체 코드 입니다.

import pandas as pd
import json
import urllib.request
#한국거래소에서 종목 코드 받아옵니다. [0]은 헤더를 첫번째 행으로 지정하기 위해 사용 했습니다.
code_df = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13')[0]
#종목코드가 6자리이기 때문에 6자리를 맞춰주기 위해 설정해줍니다.
code_df.종목코드 = code_df.종목코드.map('{:06d}'.format)
#우리에게 필요한 회사명과 종목코드만 남깁니다.
code_df = code_df[['회사명', '종목코드']]
#리스트 형식으로 변경하면 네이버증권API 사용을 위한 준비가 끝납니다.
stock_list = code_df.values.tolist()

for stock_set in stock_list:
        #회사명을 가져옵니다.
        item_name = stock_set[0]
        #종목코드를 가져옵니다.
        item_code = stock_set[1]
        #네이버증권API인 요약 정보 기능을 사용 합니다.
        url = "https://api.finance.naver.com/service/itemSummary.nhn?itemcode=%s"%(item_code)
        #urllib.request를 통해 링크의 결과를 가져옵니다.
        raw_data = urllib.request.urlopen(url).read()
        #추후, 데이터 가공을 위해 json 형식으로 변경 합니다.
        json_data = json.loads(raw_data)
        #PER과 PBR을 변수로 지정합니다.
        per_value = json_data['per']
        pbr_value = json_data['pbr']
        #우선, PER 값이 있는 종목을 골라 냅니다.
        if per_value :
            #PER이 0보다 크고 2보다 작은 종목이면서 PBR이 0.7보다 작은 종목을 찾습니다.
            if 0 < per_value < 2 and 0.7 > pbr_value :
                print("[%s]의 per은 %s 입니다. (pbr %s)" %(item_name, per_value, pbr_value))

실행 시 결과가 아래와 같이 순차 출력되고 있는 것을 확인할 수 있습니다.

네이버증권의 공개(?) API를 활용하여 간단한 Python 스크립트를 작성해 보았습니다.


다음 페이지 입니다.

https://marketward.tistory.com/5

 

[Python/파이썬]네이버증권API 활용 - multiprocessing 사용 (4/4)

https://marketward.tistory.com/4 [Python/파이썬]네이버증권API 활용 - PER, PBR 기준으로 종목 검색(3/4) https://marketward.tistory.com/3 [Python/파이썬]네이버증권API 활용 - 네이버증권API + 종목코드로 json 결과 확인(2

marketward.tistory.com

 

반응형