본문 바로가기
IT이야기/파이썬을 이용한 주식 투자

파이썬을 활용한 Yahoo Finance 주식 데이터 크롤링

by 행복찾아3만리 2022. 1. 8.
반응형

안녕하세요. 이번 글에서는 파이썬 BeautifulSoup 라이브러리를 활용하여 Yahoo Finance 주식 데이터를 크롤링해보겠습니다.

 

1. BeautifulSoup를 이용한 크롤링

1.1. 필요 라이브러리

!pip install lxml
!pip install BeautifulSoup

1.2. 애플 주가 크롤링 코드

from urllib.request import urlopen
from bs4 import BeautifulSoup
from html_table_parser import parser_functions as parser
import pandas as pd

ticker = 'AAPL'#애플

URL = 'https://finance.yahoo.com/quote/{}/history?period1=-252374400&period2=9999999999&interval=div%7Csplit&filter=div&frequency=1d&includeAdjustedClose=true'.format(ticker)
req = urlopen(URL)
html = req.read()

soup = BeautifulSoup(html, 'lxml')

#원하는 table 값이 있는 class 넣기
soup_table = soup.find('table', attrs={'class':'W(100%) M(0)'})
table = parser.make2d(soup_table)
df = pd.DataFrame(table[1:], columns=table[0])
df

코드 설명

  • URL 변수에 Yahoo Finance 주가 데이터 URL을 넣는다.
  • urlopen 함수를 이용하여 해당 URL을 연다.
  • read() 함수를 사용하여 해당 사이트 html을 읽는다.
  • BeautifulSoup().find() 함수를 사용하여 재무제표를 table로 뽑는다.

2. yfinance 라이브러리를 사용하여 크롤링 하기

2.1 필요 라이브러리

!pip install pandas-datareader
!pip install yfinance

2.2 yfinance를 이용한 애플 주가 크롤링 코드

import pandas as pd
import pandas_datareader as pdr
import yfinance as yf

AAPL = yf.Ticker("AAPL") # 데이터 가져오기
AAPL.history(period="max") # 주가 정보
AAPL.actions # 배당, 분할 정보
AAPL.dividends # 배당 정보
AAPL.splits # 분할 정보

위와 같이 yfinance 라이브러리를 사용하면 직접 URL에 접속하여 데이터를 전처리하는 것보다 쉽게 크롤링할 수 있습니다.

 

여기까지 파이썬을 활용하여 Yahoo Finance에서 주식 데이터를 크롤링하는 방법이었습니다. 간단한 코드지만 여기서 응용을 하신다면 주식 투자에 큰 도움이 되실 것입니다. 감사합니다.

반응형

댓글