파이썬 주식 데이터 가져 오기 | [Python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명 답을 믿으세요

당신은 주제를 찾고 있습니까 “파이썬 주식 데이터 가져 오기 – [python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명“? 다음 카테고리의 웹사이트 you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 생각하는 코딩 이(가) 작성한 기사에는 조회수 8,828회 및 좋아요 130개 개의 좋아요가 있습니다.

전체 종목 데이터를 가져오려면 다음과 같이 입력합니다. 괄호 안에 미국인 경우는 ETF/US, 일본은 ETF/JP를 입력하면 됩니다. 이렇게 심볼을 알게 되었으면 fdr.DataReader에 마찬가지로 입력해서 종목의 가격 데이터를 가져올 수 있습니다.

파이썬 주식 데이터 가져 오기 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명 – 파이썬 주식 데이터 가져 오기 주제에 대한 세부정보를 참조하세요

https://ai-creator.tistory.com/51

파이썬 주식 데이터 가져 오기 주제에 대한 자세한 내용은 여기를 참조하세요.

주식 데이터 가져오기 (종목 코드와 주가) – 라이프온룸

이 요청을 파이썬에서 하면 우리는 바로 데이터를 바로 얻어 올 수 있습니다. 해당 기능을 하는 함수를 만들어 봅시다. getStockCodeAndPrice.py 파일을 autoTradeLesson …

+ 자세한 내용은 여기를 클릭하십시오

Source: lifeonroom.com

Date Published: 12/22/2022

View: 8369

[Python/FinanceDataReader] 1편. 파이썬으로 국내/해외 상장 …

빠른 이해를 돕기 위해 네이버 주식의 가격을 불러오는 것을 예제로 다루어보겠습니다. # 2021년~현재까지의 네이버 주가를 데이터 프레임으로 불러오기 …

+ 여기에 보기

Source: coding-kindergarten.tistory.com

Date Published: 1/11/2022

View: 3516

주식 데이터 가져오기 & 차트 그리기 – [Python] 금융 – ai-creator

즉, 코스피(KOSPI)와 코스닥(KOSDAQ)의 종목 코드 목록을 알면 쉽게 데이터를 가지고 올 수 있다는 의미입니다. Step 2) 한국 거래소 종목 가져오기.

+ 자세한 내용은 여기를 클릭하십시오

Source: ai-creator.tistory.com

Date Published: 8/18/2021

View: 9734

[python] pykrx로 주가 데이터 가져오기 – psystat

pykrx로 주가 데이터 가져오기 pykrx¶ https://github.com/sharebook-kr/pykrx KRX, Naver 등의 웹사이트에서 주가정보를 스크래핑하는 모듈 1.

+ 여기에 보기

Source: psystat.tistory.com

Date Published: 6/11/2021

View: 5480

[Python] 네이버 금융 주식 정보 가져오기 (ex. 삼성전자)

pykrx 모듈은 네이버금융(Naver finance)와 KRX 정보 데이터 시스템에서 주가 정보를 지속적으로 스크래핑(scraping) 하고 Github에서 업데이트 해줍니다.

+ 여기에 자세히 보기

Source: scribblinganything.tistory.com

Date Published: 10/22/2022

View: 5049

python 주식 데이터 가져오기 – 코딩, 투자를 하면 머리가 난다.

한국 주식 데이터 가져오기. import FinanceDataReader as fdr import pandas as pd df_krx = fdr.StockListing(‘KRX’) df_KOSPI = df_krx[df_krx[‘Market’]==’KOSPI’] …

+ 여기에 보기

Source: balmostory.tistory.com

Date Published: 5/17/2021

View: 292

파이썬으로 일봉 주식 데이터 가져오기: pandas-datareader

파이썬에는 국내외 일단위 주식 데이터를 제공해주는 라이브러리들이 있습니다. 그중 대표적인 pandas-datareader를 사용하는 방법을 알아보겠습니다.

+ 여기에 보기

Source: hogni.tistory.com

Date Published: 10/6/2021

View: 8129

주제와 관련된 이미지 파이썬 주식 데이터 가져 오기

주제와 관련된 더 많은 사진을 참조하십시오 [python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명
[python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명

주제에 대한 기사 평가 파이썬 주식 데이터 가져 오기

  • Author: 생각하는 코딩
  • Views: 조회수 8,828회
  • Likes: 좋아요 130개
  • Date Published: 2020. 6. 12.
  • Video Url link: https://www.youtube.com/watch?v=ArUEyhVm-y0

[Python] FinanceDataReader로 주식데이터 가져오기

반응형

FinanceDataReader라는 라이브러리가 있어서 소개겸 포스팅하려 합니다.

이 라이브러리를 쓰면 국내 주식, 미국 주식, 지수, 환율, 주요 암호화폐 가격 데이터를 가져올 수 있습니다.

제가 이 포스팅을 쓰는 이유는 자꾸 잊어버려서

코드를 저장하고자 쓰는 내용이라 원하는 내용이 없을 수도 있습니다.

그리고 라이브러리에서 코드를 바꿔버리거나 서비스를 중지하면 되지 않을 수 있으니

안 되시면 FinancedataReader 가이드 사이트나 Github에서 확인하시기 바랍니다.

Install

다음 코드를 파이썬 prompt나 파워쉘에서 입력해 설치를 합니다.

쥬피터에서는 맨 앞에 느낌표(!)를 붙입니다.

pip install finance-datareader

전체 종목 코드 가져오기

국내와 미국 주식 코드를 가져오려면 다음과 같이 합니다.

섹터, 업종, 대표에 대한 정보도 가져올 수 있습니다.

import FinanceDataReader as fdr df_krx = fdr.StockListing(‘KRX’)

국내 주식인 경우 파라미터에 표에 나온 심볼을 넣어서 원하는 데이터를 가져올 수 있습니다.

심볼 KRX KRX 전체 종목 KOSPI KOSPI 종목 KOSDAQ KOSDAQ 종목 KONEX KONEX 종목

미국 주식의 심볼은 다음과 같습니다

심볼 NASDAQ 나스닥 종목 NYSE 뉴욕 증권거래소 종목 AMEX AMEX 종목 SP500 S&P500 종목

개별 종목의 가격 데이터 가져오기

국내는 단축 코드를 미국은 티커로 가져올 수 있습니다.

국내 주식

파라미터에 코드와 일자를 넣어서 원하는 데이터를 가져옵니다.

df = fdr.DataReader(‘종목코드’,’시작일자’,’종료일자’)

날짜는 필수로 입력하지 않아도 됩니다.

날짜를 입력하지 않으면 전체 날짜 데이터를 가져옵니다.

삼성전자(005930)로 예를 들면 다음과 같이 나옵니다.

df = fdr.DataReader(‘005930′,’2020’) df

위와 같이 시가, 고가, 저가, 종가, 거래량, 전일대비 데이터를 얻을 수 있습니다.

미국 주식

미국 주식은 티커로 합니다. 애플(AAPL)을 예를 들겠습니다.

df = fdr.DataReader(‘AAPL’,’2020′) df

지수 가져오기

지수도 개별 종목의 가격 데이터를 가져오는 방법과 같고 코드나 티커 대신에 심볼을 넣어서 데이터를 얻게 됩니다.

국내지수

심볼 KS11 KOSPI 지수 KQ11 KOSDAQ 지수 KS50 KOSPI 50 지수 KS100 KOSPI 100 지수 KRX100 KRX 100 지수 KS200 KOSPI 200 지수

미국지수

심볼 DJI 다우존스 지수 IXIC 나스닥 지수 US500 S&P 500 지수 VIX S&P 500 VIX

국가별 주요 지수

심볼 JP225 닛케이 225 선물 STOXX50E Euro Stoxx 50 CSI300 CSI 300(중국) HSI 항생(홍콩) FTSE 영국 FTSE DAX 독일 DAX 30 CAC 프랑스 CAC 40

ETF 데이터 가져오기

국내(KR),미국(US),일본(JP) ETF 데이터를 가져올 수 있는데 제 경험상으로 일부 종목의 가격이 다른 걸 알고 있는데 곧 고쳐지겠죠?

전체 종목 데이터를 가져오려면 다음과 같이 입력합니다.

df_etf = fdr.StockListing(‘ETF/KR’)

괄호 안에 미국인 경우는 ETF/US, 일본은 ETF/JP를 입력하면 됩니다.

이렇게 심볼을 알게 되었으면 fdr.DataReader에 마찬가지로 입력해서 종목의 가격 데이터를 가져올 수 있습니다.

KODEX 200선물인버스2X를 예로 들겠습니다.

df_etf에서 심볼을 가져와서 해도 됩니다.

편의상 종목코드를 바로 입력하겠습니다.

df_inver = fdr.DataReader(‘252670’)

이 외에도 환율, 암호화폐를 가져올 수 있습니다.

저는 잘 안 써서 여기서 포스팅을 마치도록 하겠습니다.

나머지는 가이드 사이트에서 확인하시기 바랍니다.

FinanceDataReader는 데이터프레임으로 데이터를 가져오니

데이터프레임 다루는 방법을 잘 모르시면 다음 포스팅을 참고해주시기 바랍니다.

관련 포스팅

[Python/웹크롤링] – [웹크롤링] 네이버증권에서 재무제표 가져오기

[Python/Pandas] – [Pandas]특정문자로 찾기 str.contains()

[Python/Pandas] – [Pandas] DataFrame 결측치(NaN) 처리

[Python/Pandas] – [Pandas] 데이터프레임 엑셀 저장, 불러오기

[Python/Pandas] – [Pandas] 원하는 값으로 필터링

주식 데이터 가져오기 (종목 코드와 주가)

관련 카테고리 : Python, 스터디LAB

주가 데이터를 가져오는 법을 알았으니 가져오려는 주식의 코드 정보를 알아야 겠죠 ?

그 방법을 알아보도록 하겠습니다.

1. KRX 에서 수동으로 다운받기

아래 링크에서 수동으로 코드를 받아 올 수 있습니다.

https://kind.krx.co.kr/corpgeneral/corpList.do?method=loadInitPage

시장 구분에서 원하는 거래소를 선택한뒤 EXCEL 버튼을 눌러 다운로드 하면 됩니다.

2. Pandas 를 이용해 웹 크롤링

이 과정은 1의 과정은 자동으로 하는 것과 같습니다.

크롬 개발자도구를 켜고 네트워크 탭을 선택합니다.

시장구분은 유가증권으로 선택한뒤 EXCEL 버튼을 눌러보세요

위 화면에서 corpList.do 를 Click 해서 Headers 를 보면 Request URL 이 아래와 같이 되어 있을 것입니다.

http://kind.krx.co.kr/corpgeneral/corpList.do

그리고 화면을 내려서 Form Data 칸을 보면 아래와 같이 되어 있습니다.

즉 사용자가 EXCEL 버튼을 누르면 web 브라우저가 Request URL 에 Form Data를 포함하여 데이터를 요청합니다. 그럼 KRX 서버는 요청에 맞게 데이터를 돌려주는 것이지요

이 요청을 파이썬에서 하면 우리는 바로 데이터를 바로 얻어 올 수 있습니다.

해당 기능을 하는 함수를 만들어 봅시다. getStockCodeAndPrice.py 파일을 autoTradeLesson 폴더 및에 만든 후 아래 코드를 입력합니다.

import pandas as pd

def getStockCode(market): if market == ‘kosdaq’: url_market = ‘kosdaqMkt’ elif market == ‘kospi’: url_market = ‘stockMkt’ else: print(‘invalid market ‘) return url = ‘http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13&marketType=%s’ % url_market df = pd.read_html(url, header=0)[0] return df if __name__ == ‘__main__’: result_df = getStockCode(‘kosdaq’) print(result_df)

위 코드에서 pandas 라는 라이브러리를 사용했는데 해당 라이브러리는 pandas-datareader 를 설치하면 같이 설치되는 라이브러리 입니다. 앞으로의 개발에 pandas 가 정말 많이 사용될 텐데요 pandas에 대해서는 나중에 시간이 나면 한번 포스팅 해보겠습니다.

(일단은 여기서 한번 보시는걸로.. — pandas 라이브러리 도큐먼트)

getStockCode 함수는 마켓이름을 인자로 받아 Kospi 혹은 Kosdaq 에 상장된 회사 정보를 받아 옵니다. kospi 데이터 를 받아 오고 싶으면 getStockCode(‘kospi’) 를 호출 하시면됩니다.

getStockCode(‘kosdaq’) 결과

3. 가져온 데이터 처리하기

Yahoo 에서 주가 데이터를 가져오려면 종목코드가 필요합니다. 참고로 Yahoo 에 주가를 요청할 때 쓰이는 인자 형식은 아래와 같습니다.

Kospi: {종목코드}.KS Kosdaq: {종목코드}.KQ

즉 우리는 getStockCode 로 받아온 결과물 중 일단은 회사명과 종목코드만 필요 합니다. 그럼 받아온 데이터를 저장하고 그 중 원하는 데이터만 추출하는 코드를 만들어 보겠습니다.

if __name__ == ‘__main__’: result_df = getStockCode(‘kospi’) result_df.to_csv(‘kospi.csv’) print(result_df[[‘회사명’, ‘종목코드’]])

위 코드를 실행하면 코드가 실행되는 폴더인 autoTradeLesson 폴더에 kospi.csv 파일이 저장되고 Pycharm 결과 부분에 아래와 같이 출력되는 것을 확인 하실 수 있습니다.

4. Yahoo에 모든/선택 종목의 주가 데이터 요청하기

위 작업에서 웹에서 받아온 종목코드 관련 데이터를 kospi.csv 파일에 저장 했습니다.

이제 이 파일을 읽어서 회사이름과 종목코드를 추출 한 뒤 특정 회사 혹은 거래소 전체의 주가를 받아오는 코드를 작성해 보겠습니다.

from pandas_datareader import data import os def getStockPrice(market, companyNameList = []): dirName = “stockPriceData” # ————– dirName을 가진 폴더가 없으면 폴더를 만듬 ———– try: if not (os.path.isdir(dirName)): os.makedirs(os.path.join(dirName)) except OSError as e: print(“Failed to create directory!!!!!”, e) return # ————– 저장한 종목 코드가 담겨있는 CSV 파일을 Open ———– csv_file_name = market + ‘.csv’ try: df = pd.read_csv(csv_file_name) except: print (‘No file ‘) return # ————– 종목코드를 Yahoo 가 이해할 수 있는 코드로 변환 ———– suffix = ‘.KS’ if market == ‘kospi’ else ‘.KQ’ df_nameAndCode = df[[‘회사명’, ‘종목코드’]] df_nameAndCode[‘종목코드’] = df_nameAndCode[‘종목코드’].astype(str) df_nameAndCode[‘종목코드’] = df_nameAndCode[‘종목코드’].str.zfill(6) + suffix # ————– 전체종목 가져오기 ———– if companyNameList == []: for idx, dat in df_nameAndCode.iterrows(): try: df_stockPrice = data.get_data_yahoo(dat[‘종목코드’]) fileName = os.path.join(dirName, dat[‘회사명’] + ‘.csv’) df_stockPrice.to_csv(fileName) print(dat[‘회사명’], ‘ Saved’) except Exception as e: print(dat[‘회사명’], e) # ————– companyNameList 에 정의된 종목만 가져오기 ———– else: for companyName in companyNameList: try: idx = df_nameAndCode[‘회사명’].tolist().index(companyName) df_stockPrice = data.get_data_yahoo(df_nameAndCode[‘종목코드’][idx]) fileName = os.path.join(dirName, df_nameAndCode[‘회사명’][idx] + ‘.csv’) df_stockPrice.to_csv(fileName) print(df_nameAndCode[‘회사명’][idx], ‘ Saved’) except Exception as e: print(e)

작업 파일에 위 함수를 작성한 뒤 파일 하단에서 함수를 불러줌으로써 원하는 데이터를 얻을 수 있습니다.

if __name__ == ‘__main__’: #result_df = getStockCode(‘kospi’) #result_df.to_csv(‘kospi.csv’) #print(result_df[[‘회사명’, ‘종목코드’]]) #getStockPrice(‘kospi’) # 전체 kospi 주가를 가져옴 getStockPrice(‘kospi’, [‘신세계’, ‘삼성전자’])# List 안의 종목만 가져옴

아래 빨간색 내용은 Warning 이니 일단 무시하셔도 됩니다.

아래와 같이 삼성전자와 신세계의 주가 데이터 값이 csv 형식으로 저장되어 있는 것을 확인 하실 수 있습니다.

5. 결과

Yahoo 에서 주가를 얻어 오는것 은 간편하지만 전체 코드에 대해서 주가 가져오기를 실행하면 매우 오래 걸리더군요.. 그리고 빈번한 Request로 인해서 요청이 실패하는 경우도 간간히 있었구요..

Yahoo 요청은 과거 데이터를 기반으로 백테스팅 할 때 쓰면 좋을 것 같습니다.

Yahoo는 이제 그만 괴롭히고 다음 포스트에서는 키움증권 API 를 다뤄 보도록 하겠습니다.

♦ 결과 코드는 아래 Github를 참조해 주세요

https://github.com/hog225/autoTradeLesson

getStockCodeAndPrice.py 파일을 참조하시면 됩니다.

[Python/FinanceDataReader] 1편. 파이썬으로 국내/해외 상장주식 가격데이터 가져오기 (ft. 환율, 코인가격도 가능)

반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART)나 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

이번 시간에는 공시 정보를 다루는 DART-FSS 라이브러리에 이어서 상장된 주식의 가격 정보를 다루는 라이브러리인 FinanceDataReader라는 패키지에 대해 소개해드리겠습니다.

두 패키지를 잘 조합하면 정말 유용한 정보를 얻을 수 있을 것 같은 느낌이 듭니다.

FinanceDataReader란?

한국 주식 가격, 미국주식 가격, 지수, 환율, 암호화폐 가격, 종목 리스팅 등 금융 데이터 수집 라이브러리

<공식 문서 링크>

https://financedata.github.io/posts/finance-data-reader-users-guide.html

해당 패키지는 한국의 어느 천재분께서 pandas-datareader라는 시계열 데이터 수집 라이브러리의 몇가지 단점을 보완하는 목적으로 만드신 라이브러리입니다.

공식 문서에 따르면 해당 라이브러리를 통해 얻을 수 있는 주요한 데이터는 아래와 같습니다.

종목 코드

거래소별 전체 종목코드: KRX (KOSPI, KODAQ, KONEX), NASDAQ, NYSE, AMEX, S&P 500

가격 데이터

해외주식 가격 데이터: AAPL(애플), AMZN(아마존), GOOG(구글) 등

국내주식 가격 데이터: 005930(삼성전자), 091990(셀트리온헬스케어) 등

각종 지수: KS11(코스피지수), KQ11(코스닥지수), DJI(다우지수), IXIC(나스닥 지수), US500(S&P 5000)

환율 데이터: USD/KRX (원달러 환율), USD/EUR(달러당 유로화 환율), CNY/KRW: 위엔화 원화 환율

암호화폐 가격: BTC/USD (비트코인 달러 가격, Bitfinex), BTC/KRW (비트코인 원화 가격, 빗썸)

라이브러리 설치하기

설치 방법은 파이썬 터미널 창이나 주피터 노트북의 코드 입력창에 아래의 코드를 넣고 실행해주시면 됩니다.

pip install -U finance-datareader

라이브러리 불러오기

불러오는 방법은 아래와 같습니다.

import FinanceDataReader as fdr

참고로 아래의 코드는 FinanceDataReader라는 라이브러리를 불러오는데 fdr이란 이름으로 줄여서 부르겠다는 뜻입니다.

튜토리얼

StockListing( ) 함수 : 종목 정보

StockListing 함수는 종목들의 여러 정보를 판다스의 데이터 프레임 형태로 가져올 수 있는 함수입니다.

예시 코드는 아래와 같습니다.

# 한국거래소 상장종목 전체 df_krx = fdr.StockListing(‘KRX’) df_krx.head()

<실행 결과>

‘KRX’ 대신 들어갈 수 있는 옵션들을 살펴보겠습니다.

분류 옵션 설명 한국 시장 ‘KRX’, ‘KOSPI’, ‘KOSDAQ’, ‘KONEX’ KRX는 한국거래소 상장 종목 전체를 의미

(KOSPI, KOSDAQ, KONEX, 기타 ETF를 모두 포함) 미국 시장 ‘S&P500’, ‘NASDAQ’, ‘NYSE’, ‘AMEX’,

‘SSE’, ‘SZSE’, ‘HKEX’, ‘TSE’, ‘HOSE’ 미국 시장들의 정보 시가총액 ‘KRX-MARCAP’ KRX에 상장된 종목들의 종목코드, 시가총액, 총주식수 등의 정보 상장폐지 ‘KRX-DELISTING’ 상장폐지에 관한 정보 감사의견 ‘KRX-ADMINISTRATIVE’ KRX 상장사 중, 감사의견을 받은 회사의 종목코드, 날짜, 이유 한국 ETF ‘ETF/KR’ KRX에 상장된 ETF의 종목코드와 이름

저는 개인적으로 시가총액 정보를 받아올 수 있는 ‘KRX-MARCAP’이 쓸모가 있어보이네요. 다음에 이 데이터와 재무제표 정보를 사용해서 데이터 분석을 해볼 예정입니다.

DataReader( ) 함수 : 개별 종목 가격 or 지수

해당 함수는 개별 종목, 혹은 지수의 가격을 시계열 데이터로 가져올 수 있는 함수입니다.

참고로 환율과 암호화폐(코인) 정보까지 가져올 수 있으니 활용도가 무궁무진 할 것 같네요!

함수 사용 설명

빠른 이해를 돕기 위해 네이버 주식의 가격을 불러오는 것을 예제로 다루어보겠습니다.

# 2021년~현재까지의 네이버 주가를 데이터 프레임으로 불러오기 df_naver = fdr.DataReader(‘035420’, ‘2021’) # 가장 마지막(최신)의 10일치 주가 출력 df_naver.tail(10)

<실행 결과>

이 결과가 실제 데이터와 맞는지 확인해볼까요? 네이버에서 네이버 주가를 검색해보았습니다.

오늘이 8월 10일이니깐 종가(Close)가 446,500원으로 똑 같은 것을 확인 할 수 있습니다. 전일 가격도 447,500원이니깐 데이터가 실제와 동일하네요.

이런식으로 개별 종목을 조회할 수도 있고, 아래와 같이 지수를 확인할 수도 있답니다.

# KOSPI200, 2015년~현재 df_kospi200 = fdr.DataReader(‘KS200’, ‘2015’) # 가장 마지막(최신)의 10일치 지수 출력 df_naver.tail(10)

조회 가능한 지수들은 아래와 같으니 필요하신 것으로 바꾸어서 사용하시면 됩니다.

오늘 준비한 내용은 여기까지입니다.

참고로 해당 데이터를 이용해서 시각화(그래프)도 가능하며, 이에 대한 내용은 다음에 포스팅 해보도록 하겠습니다.

오늘도 코딩유치원을 찾아 주신 여러분들께 감사드립니다.

반응형

주식 데이터 가져오기 & 차트 그리기

반응형

<< 목표 >>

네이버 금융에서 원하는 종목의 일별 시세를 크롤링해보고, 2가지 종류의 그래프를 그려봅니다.

<< 사전 준비 >>

– 라이브러리

$ pip install pandas $ pip install matplotlib $ pip install plotly

<< 구현 순서 >>

Step 1 URL 구조 확인 Step 2 한국 거래소 종목 가져오기 Step 3 주식 데이터 가져오기 Step 4 차트 그리기

Step 1) URL 구조 확인

먼저 크롤링할 네이버 금융의 url 구조를 확인해보자.

LG화학의 경우를 살펴보면, 다음과 같다.

https://finance.naver.com/ > “LG화학” 검색 > [시세] 탭 클릭

여기에 적힌 051910이라는 값이 “종목코드”를 의미합니다.

즉, 코스피(KOSPI)와 코스닥(KOSDAQ)의 종목 코드 목록을 알면 쉽게 데이터를 가지고 올 수 있다는 의미입니다.

Step 2) 한국 거래소 종목 가져오기

코스피(KOSPI)와 코스닥(KOSDAQ)의 종목 코드 목록은 어디에 있을까요?

3000여 개나 되는 코드를 하나하나 찾는 건 귀찮은 일이니, 한국 거래소 (KRX)를 통해 가져오면 된됩니다.

한국 거래소에서는 상장법인목록을 엑셀 파일로 다운로드할 수 있게 제공이 되기 때문에 사용하기 편합니다!!

import pandas as pd #해당 링크는 한국거래소에서 상장법인목록을 엑셀로 다운로드하는 링크입니다. #다운로드와 동시에 Pandas에 excel 파일이 load가 되는 구조입니다. stock_code = pd.read_html(‘http://kind.krx.co.kr/corpgeneral/corpList.do?method=download’, header=0)[0] #stock_code.head() # 데이터에서 정렬이 따로 필요하지는 않지만 테스트겸 Pandas sort_values를 이용하여 정렬을 시도해봅니다. stock_code.sort_values([‘상장일’], ascending=True) # 필요한 것은 “회사명”과 “종목코드” 이므로 필요없는 column들은 제외 stock_code = stock_code[[‘회사명’, ‘종목코드’]] # 한글 컬럼명을 영어로 변경 stock_code = stock_code.rename(columns={‘회사명’: ‘company’, ‘종목코드’: ‘code’}) #stock_code.head() # 종목코드가 6자리이기 때문에 6자리를 맞춰주기 위해 설정해줌 stock_code.code = stock_code.code.map(‘{:06d}’.format)

Step 3) 주식 데이터 가져오기

step2 에서 가져온 종목 코드와 함께 일별 시세를 가지고 옵니다.

– 종목 검색 : https://finance.naver.com/item/sise_day.nhn?code=[종목코드]

– 일별 시세 구조 : https://finance.naver.com/item/sise_day.nhn?code=[종목코드]&page=[페이지번호]

step3-1) LG화학에 대해서 page=1 인 경우만 가져오기

– www.useragentstring.com에서 User-Agent를 확인 합니다.

import requests # LG화학의 일별 시세 url 가져오기 company=’LG화학’ code = stock_code[stock_code.company==company].code.values[0].strip() ## strip() : 공백제거 page = 1 url = ‘http://finance.naver.com/item/sise_day.nhn?code={code}’.format(code=code) url = ‘{url}&page={page}’.format(url=url, page=page) print(url) header = {‘User-Agent’:’<복사한 user-agent 값 대체>‘} res = requests.get(url,headers=header) df = pd.read_html(res.text, header=0)[0] df.head()

step3-2) LG화학에 대해서 page를 반복해서 대량의 데이터 가져오기

company=’LG화학’ code = stock_code[stock_code.company==company].code.values[0].strip() ## strip() : 공백제거 df = pd.DataFrame() for page in range(1,21): url = ‘http://finance.naver.com/item/sise_day.nhn?code={code}’.format(code=code) url = ‘{url}&page={page}’.format(url=url, page=page) print(url) df = df.append(pd.read_html(url, header=0)[0], ignore_index=True)

step3-3) 데이터 클린징

# df.dropna()를 이용해 결측값 있는 행 제거 df = df.dropna() # 한글로 된 컬럼명을 영어로 바꿔줌 df = df.rename(columns= {‘날짜’: ‘date’, ‘종가’: ‘close’, ‘전일비’: ‘diff’, ‘시가’: ‘open’, ‘고가’: ‘high’, ‘저가’: ‘low’, ‘거래량’: ‘volume’}) # 데이터의 타입을 int형으로 바꿔줌 df[[‘close’, ‘diff’, ‘open’, ‘high’, ‘low’, ‘volume’]] = df[[‘close’, ‘diff’, ‘open’, ‘high’, ‘low’, ‘volume’]].astype(int) # 컬럼명 ‘date’의 타입을 date로 바꿔줌 df[‘date’] = pd.to_datetime(df[‘date’]) # 일자(date)를 기준으로 오름차순 정렬 df = df.sort_values(by=[‘date’], ascending=True) # 상위 5개 데이터 확인 df.head()

Step 4) 차트 그리기

필요한 라이브러리를 import 합니다.

단순형 차트는 seaborn 라이브러리를

반응형 차트는 plotly 라이브러리를 사용하겠습니다.

import matplotlib.pyplot as plt # 필요한 모듈 import 하기 import plotly import plotly.graph_objects as go import plotly.express as px # %matplotlib inline 은 jupyter notebook 사용자용 – jupyter notebook 내에 그래프가 그려지게 한다. %matplotlib inline

Step 4-1) 단순형 차트 그리기

plt.figure(figsize=(10,4)) plt.plot(df[‘date’], df[‘close’]) plt.xlabel(”) plt.ylabel(‘close’) plt.tick_params( axis=’x’, # changes apply to the x-axis which=’both’, # both major and minor ticks are affected bottom=False, # ticks along the bottom edge are off top=False, # ticks along the top edge are off labelbottom=False) # labels along the bottom edge are off plt.savefig(company + “.png”) plt.show()

Step 4-2) 반응형 차트 그리기

Plotly라이브러리 (https://plotly.com/python/)를 이용해 Time Series 그래프 그리기를 그려봅시다.

fig = px.line(df, x=’date’, y=’close’, title='{}의 종가(close) Time Series’.format(company)) fig.update_xaxes( rangeslider_visible=True, rangeselector=dict( buttons=list([ dict(count=1, label=”1m”, step=”month”, stepmode=”backward”), dict(count=3, label=”3m”, step=”month”, stepmode=”backward”), dict(count=6, label=”6m”, step=”month”, stepmode=”backward”), dict(step=”all”) ]) ) ) fig.show()

(참고) html 코드로 저장하기

fig.write_html(“file.html”)

짜잔~~ 버튼도 있고, 스크롤바 처럼 생긴 부분들을 움직일 수 있는 반응형 그래프가 만들어졌어요~~~

더 많은 종목을 크롤링해서 사용한다면 어떻게 해야 할까요? 어디에 for문을 넣어야 하는지 고민해보세요^^

이렇게 크롤링한 데이터를 나만의 DB를 만들어서 관리해서 좋고,

만들어진 차트를 나만의 웹서버를 만들어서 봐도 좋고요,

차트들을 이미지로 다운로드 받아서 ppt를 만들어서 분석자료를 메일로 받아봐도 좋을 것 같아요.

또, 요즘에는 주식 뉴스를 작성하는 봇들이 있는거 아시죠? 이 내용을 배우고 나면, 어렵지 않게 할 수 있답니다~

(참고) 뉴스 봇

> WOW TV (Link)

> FNNEWS (Link)

여러분들도 다양하게 활용해보세요~

<< 참고 >>

– excelsior-cjh.tistory.com/109

반응형

[Python] 네이버 금융 주식 정보 가져오기 (ex. 삼성전자)

반응형

목차

[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 주식 데이터 가져오기

728×90

오늘은 FinanceDataReader를 통해서 한국/미국 주식, 환율, 비트코인의 가격 데이터를 가져오는 방법에 대해 알아보도록 하겠습니다.

추가적으로 도움이 될 만한 사이트에 대해 알아보도록 하겠습니다.

한국 주식 데이터 가져오기.

import FinanceDataReader as fdr import pandas as pd df_krx = fdr.StockListing(‘KRX’) df_KOSPI = df_krx[df_krx[‘Market’]==’KOSPI’] df_KOSDAQ = df_krx[df_krx[‘Market’]==’KOSDAQ’] print(len(df_KOSPI)) print(len(df_KOSDAQ)) KOSPI=list(df_KOSPI[‘Symbol’]) KOSDAQ=list(df_KOSDAQ[‘Symbol’]) print(KOSPI) print(KOSDAQ)

신라젠 2018년 1월 1일부터의 주가 가져오기.

기간을 정하고 싶으시면 뒤에 원하는 날짜까지를 더 쓰시면 됩니다.

, ‘2018-12-31’ 이런 식으로 넣으시면 됩니다.

df = fdr.DataReader(‘215600’, ‘2018-01-01’) df[‘Close’].plot() plt.show()

미국 주식 데이터 가져오기.

dji = fdr.DataReader(‘DJI’, ‘2015-01-01’) dji[‘Close’].plot() plt.show()

추가적으로 해외의 어떤 기업의 심벌을 알기 위해서는 야후 파이낸스 사이트에서 검색하면 알 수 있습니다.

apple을 검색하면 왼쪽에 AAPL이라는 심벌이 나옵니다.

df=fdr.DataReader(‘AAPL’,”2018-01-01″) df[‘Close’].plot() plt.show()

환율 가져오기.

usdkrw = fdr.DataReader(‘USD/KRW’, ‘1995-01-01’) usdkrw[‘Close’].plot() plt.show()

암호화폐 데이터 가져오기.

btc = fdr.DataReader(‘BTC/KRW’, ‘2016-01-01’) btc[‘Close’].plot() plt.show()

더 많은 금융 데이터를 가져올 수 있습니다.

공식 홈페이지에 방문해 보시기 바랍니다.

채권 수익률, 선물 가격, 상장폐지 종목 가격 등 정말 많은 데이터들을 사용할 수 있습니다.

끝까지 읽어주셔서 감사합니다.

728×90

파이썬으로 일봉 주식 데이터 가져오기: pandas-datareader

파이썬에는 국내외 일단위 주식 데이터를 제공해주는 라이브러리들이 있습니다. 그중 대표적인 pandas-datareader를 사용하는 방법을 알아보겠습니다. 이 라이브러리를 이용하면 다양한 데이터 소스로부터 정보를 받아 올 수 있습니다. 보통 많이 이용되는 데이터 소스는 yahoo finance입니다.

코드 패턴

import pandas_datareader as pdr pdr.get_data_yahoo(‘종목 코드’, start=’시작 시점’, end=’종료 시점’)

어떤 종목의 일별 주가 데이터를 조회하기 위해서는 딱 세 가지 변수만 입력하면 됩니다. 이때 한 가지 주의할 점은 미국과 우리나라의 ‘종목 코드’ 입력 방법이 다르다는 점입니다. 미국의 경우 알파벳을 사용하고 있으며, 우리나라의 경우 6자리 숫자를 사용합니다. 예를 들어 마이크로 소프트의 종목 코드는 ‘msft’이고, 삼성전자의 종목 코드는 ‘005930’입니다.

예시: 마이크로 소프트의 일별 주가 데이터 가져오기

조회 기간을 따로 설정하지 않는다면 기본적으로 최근 5년 치의 데이터를 보여줍니다.

msft = pdr.get_data_yahoo(‘msft’) msft

코드 한줄로 5년 치의 msft 일별 주가 데이터가 잘 가져와진 것을 확인할 수 있습니다.

예시: 삼성전자의 일별 주가 데이터 가져오기

이번에는 삼성전자의 주가 데이터를 조회해 보겠습니다. 코스피 상장사의 경우 종목 코드 뒤에 .KS를 코스닥 상장사는 .KQ를 붙여주어야 합니다.

pdr.get_data_yahoo(‘005930.KS’, start=’2011-08-19′, end=’2020-01-23′)

삼성전자의 2011-08-19일부터 2020-01-23일까지의 데이터를 잘 가져온 것을 확인할 수 있습니다. 이 간단한 코드를 이용한다면 상장되어 있는 모든 종목의 일별 주가 정보를 수집하는 것도 손쉽게 할 수 있습니다.

– 이 글은 아나콘다(Anaconda3)가 설치된 주피터 노트북에서 작성되었습니다.

키워드에 대한 정보 파이썬 주식 데이터 가져 오기

다음은 Bing에서 파이썬 주식 데이터 가져 오기 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기
[python] #주식 #데이터 #가져오기와 #차트 #그리기_1편. #소스코드 #설명


YouTube에서 파이썬 주식 데이터 가져 오기 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [python] 주식 데이터 가져오기와 차트 그리기_1편. 소스코드 설명 | 파이썬 주식 데이터 가져 오기, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment