목차
[Python] 네이버 금융 주식 정보 가져오기 : pykrx 모듈 소개
BS4나 Selenium이나 Pandas의 html read 함수를 사용해서 주식 정보를 가져오려고 시도 했다면 그 과정이 만만치 않음을 알 수 있습니다.
pykrx 모듈은 네이버금융(Naver finance)와 KRX 정보 데이터 시스템에서 주가 정보를 지속적으로 스크래핑(scraping) 하고 Github에서 업데이트 해줍니다.
해당 API를 사용하면 단 한줄로 주가 정보를 쉽게 가져 올 수 있습니다. pykrx의 상세 사용법을 알고 싶다면 위에 링크를 클릭해서 확인하시면 됩니다.
pykrx를 사용하기 위해서는 아래와 같이 설치를 해주어야 합니다.
pip install pykrx
[Python] 네이버 금융 주식 정보 가져오기 : get_market_ohlcv_by_date (삼성전자)
삼성전자의 Ticker 번호를 우선 확인해야 합니다. 번호는 네이버 금융에서 삼성전자를 검색하시면
위 그림처럼 "005930"이라는 번호를 확인할 수 있는데 이는 삼성전자 주식에 대한 고유 번호로 생각하시면 됩니다.
코드>>
from pykrx import stock
data = stock.get_market_ohlcv_by_date("20200101", "20211107", "005930")
print(data)
결과>>
시가 고가 저가 종가 거래량
날짜
2020-01-02 55500 56000 55000 55200 12993228
2020-01-03 56000 56600 54900 55500 15422255
2020-01-06 54900 55600 54600 55500 10278951
2020-01-07 55700 56400 55600 55800 10009778
2020-01-08 56200 57400 55900 56800 23501171
... ... ... ... ... ...
2021-11-01 70200 70600 69900 69900 11503729
2021-11-02 70800 72200 70700 71500 16812570
2021-11-03 71700 71700 70100 70400 12770428
2021-11-04 71200 71600 70500 70600 11818987
2021-11-05 71600 71600 70200 70200 12605513
[457 rows x 5 columns]
주석>>
3번 라인 : get_market_ohlcv_by_date 함수를 사용해서 시가, 고가, 저가, 종가, 거래량 정보를 불러 옵니다. 입력 값으로 불러올 주가의 시작일, 종료일, Ticker 번호 를 입력합니다.
결과에서 확인할 수 있듯이 Pandas Dataframe 형태로 결과가 나옵니다. Dataframe을 이용한 편집 및 사용방법은 아래 링크를 참조하시길 바랍니다.
[Python] 네이버 금융 주식 정보 가져오기 : get_market_fundamental_by_date(삼성전자)
이번에는 재무제표에서 투자의 가장 핵심 요소들인 BPS, PER, PBR, EPS, DIV, DPS 값을 불러오는 함수에 대해 알아 보겠습니다.
코드>>
from pykrx import stock
data = stock.get_market_fundamental_by_date("20200101", "20211107", "005930")
print(data)
결과>>
BPS PER PBR EPS DIV DPS
날짜
2020-01-02 35342 8.54 1.56 6461 2.57 1416
2020-01-03 35342 8.59 1.57 6461 2.55 1416
2020-01-06 35342 8.59 1.57 6461 2.55 1416
2020-01-07 35342 8.64 1.58 6461 2.54 1416
2020-01-08 35342 8.79 1.61 6461 2.49 1416
... ... ... ... ... ... ...
2021-11-01 39406 18.20 1.77 3841 4.28 2994
2021-11-02 39406 18.61 1.81 3841 4.19 2994
2021-11-03 39406 18.33 1.79 3841 4.25 2994
2021-11-04 39406 18.38 1.79 3841 4.24 2994
2021-11-05 39406 18.28 1.78 3841 4.26 2994
[457 rows x 6 columns]
주석>>
사용방법은 함수만 다르고 입력 방식은 동일 합니다.
[Python] 네이버 금융 주식 정보 가져오기 : 삼성전자 종가, PER 변화 그래프로 그리기
앞서 get_market_fundamental_by_date 함수를 사용해서 EPS 정보를 가져올 수 있었습니다. 이번에는 가져온 EPS 정보를 통해 Matplotlib 모듈을 사용해서 그래프를 그려보도록 하겠습니다.
코드>>
from pykrx import stock
data0 = stock.get_market_ohlcv_by_date("20200101", "20211107", "005930")
data1 = stock.get_market_fundamental_by_date("20200101", "20211107", "005930")
import matplotlib.pyplot as plt
plt.subplot(211)
plt.plot(data0.index, data0['종가'], color = "green", label='삼전주가')
plt.ylabel("Close Value")
plt.legend()
plt.subplot(212)
plt.plot(data1.index, data1["PER"], color = "brown", label = "삼전PER")
plt.ylabel("PER")
plt.legend()
plt.show()
결과>>
'파이썬(Python) > 웹스크롤링' 카테고리의 다른 글
[Python] 공공데이터포털에서 미세먼지 데이터 가져오기(크롤링, fine dust, API, 파이썬) (0) | 2022.05.24 |
---|---|
[Python]Selenium BluetoothAvailability()에러 해결 방법 (usb_device_handle_win) (0) | 2022.01.24 |
[Python] yfinance로 고점대비 하락율 그래프 그리기 (코스피, 코스닥, MDD) (0) | 2021.11.08 |
[Python] yfinance 함수 사용법 정리 (코스피,테슬라) (0) | 2021.11.02 |
[Python] BS4로 네이버금융 종목분석-재무분석 값 가져오기 (0) | 2021.10.27 |