![]()
야후 파이낸스 데이터 가져오기

야후 파이낸스는 주식, 채권, 외환, 암호화폐 등 다양한 금융 데이터와 정보를 제공하는 플랫폼입니다. 많은 투자자들이 이 데이터를 활용하여 자신의 투자 결정을 내리곤 합니다. 특히, 데이터를 직접 다운로드하여 엑셀에서 분석하기 위해서는 여러 가지 방법이 있지만, VBA(Visual Basic for Applications)를 사용하는 것이 매우 유용한 방법 중 하나입니다. 이 섹션에서는 야후 파이낸스에서 데이터를 어떻게 가져올 수 있는지에 대한 기본적인 개념과 방법론을 다루겠습니다.
엑셀에서 VBA를 활용하여 야후 파이낸스의 데이터를 직접 가져오는 이유는 크게 두 가지입니다. 첫째, 데이터를 자동으로 가져와서 시간과 노력을 절약할 수 있습니다. 둘째, 데이터의 형식을 사용자 맞춤형으로 변환하여 분석할 수 있습니다. 예를 들어, 주가, EPS(주당 순이익), PER(주가수익비율) 등의 정보를 쉽게 가져와서 필요한 형식으로 가공할 수 있습니다.
야후 파이낸스 데이터 접근 방법
야후 파이낸스의 데이터는 웹 페이지에 HTML 형식으로 제공됩니다. 이를 VBA를 통해 크롤링하여 필요한 정보를 가져오는 것이 가능합니다. 아래는 데이터를 가져오는 과정의 기본적인 흐름입니다.
-
웹 페이지 주소 수집: 필요한 주식의 URL을 확인합니다. 예를 들어, 3M 주식의 경우 URL은
https://finance.yahoo.com/quote/MMM/key-statistics?p=MMM입니다. -
VBA 환경 설정: 엑셀에서 VBA를 사용하기 위해 개발 도구를 활성화하고, Selenium과 같은 웹 자동화 도구를 설치합니다. 이는 웹 페이지의 데이터를 쉽게 가져오는 데 도움을 줍니다.
-
XPath 활용: 특정 데이터를 선택하기 위해 웹 페이지의 HTML 구조를 분석하여 XPath를 정의합니다. 예를 들어, EPS 값을 가져올 때는 EPS 숫자 위에 우클릭 후 "XPath 복사"를 통해 XPath를 가져옵니다.
-
VBA 코드 작성: 수집한 URL과 XPath를 바탕으로 VBA 코드를 작성하여 데이터를 엑셀 셀에 입력합니다.
아래 표에서는 야후 파이낸스의 데이터 접근에 대한 주요 요소들을 정리하였습니다.
| 요소 | 설명 |
|---|---|
| 웹 페이지 URL | 주식의 정보를 담고 있는 URL |
| XPath | 특정 데이터를 선택하는 경로 |
| VBA 환경 설정 | Selenium Library 설치 및 개발 도구 활성화 |
| 데이터 입력 | 가져온 데이터를 엑셀 셀에 입력하는 과정 |
VBA를 이용한 데이터 크롤링

VBA를 사용하여 데이터를 크롤링하는 과정은 복잡하게 느껴질 수 있지만, 기본적인 흐름을 이해하면 쉽게 접근할 수 있습니다. 이 섹션에서는 VBA 코드 샘플을 통해 데이터 크롤링 과정을 상세히 설명하겠습니다.
VBA 환경 설정
VBA를 사용하기 위해서는 먼저 엑셀에서 개발 도구를 활성화해야 합니다. 아래의 단계를 따라 진행해 주시기 바랍니다.
- 엑셀 파일 열기: 엑셀 파일을 열고
파일메뉴에서옵션을 클릭합니다. - 리본 메뉴 설정:
리본 사용자 지정에서개발 도구체크박스를 선택하여 개발 도구를 활성화합니다. - Selenium 설치: Selenium을 설치하여 웹 자동화를 위한 환경을 구축합니다. Selenium Basic을 다운로드하여 설치하고, 크롬 드라이버를 다운로드하여 설치한 폴더에 덮어씌웁니다.
데이터 크롤링 코드 작성
이제 VBA 코드를 작성하여 웹 페이지에서 데이터를 가져오는 과정을 시작하겠습니다. 아래는 기본적인 코드 예제입니다.
```vba
Sub GetStockData() Dim bot As New WebDriver bot.AddArgument "--headless" bot.Start "chrome"
Dim link As String
link = Sheets(1).Range("A2").Value ' A2 셀에 URL 입력
bot.Get link ' URL로 이동
' 주가 가져오기
Dim priceXPath As String
priceXPath = "//*[@id='quote-header-info']/div[3]/div[1]/div[1]/fin-streamer[1]"
Dim stockPrice As String
stockPrice = bot.FindElementByXPath(priceXPath).Text
Sheets(1).Range("B2").Value = stockPrice ' 주가를 B2 셀에 입력
bot.Quit
End Sub
```
위의 코드는 기본적으로 크롬을 실행하여 지정한 URL로 이동한 후, 주가 정보를 가져와서 엑셀 셀에 입력하는 작업을 수행합니다. 이와 같은 방식으로 EPS, PER, 배당 성향 등의 다른 정보를 가져오는 것도 가능합니다.
아래 표는 크롤링 과정에서 사용할 수 있는 주요 VBA 명령어들과 설명을 정리한 것입니다.
| 명령어 | 설명 |
|---|---|
bot.Start "chrome" |
크롬 브라우저 실행 |
bot.Get link |
지정한 URL로 이동 |
bot.FindElementByXPath |
XPath에 해당하는 요소 찾기 |
bot.Quit |
브라우저 종료 |
데이터 가공 및 분석

데이터를 성공적으로 가져온 후, 이를 어떻게 가공하고 분석할 것인지에 대한 부분이 필요합니다. 가져온 데이터는 단순히 엑셀에 저장하는 것에 그치지 않고, 이를 활용하여 다양한 분석을 수행할 수 있어야 합니다.
데이터 가공 방법
-
필요한 데이터 정리: 가져온 데이터 중에서 필요한 데이터만을 정리하여 분석에 활용합니다. 예를 들어, 주가, EPS, PER 등을 한눈에 볼 수 있도록 정리합니다.
-
기타 지표 계산: 가져온 데이터를 바탕으로 추가적인 지표를 계산할 수 있습니다. 예를 들어, 주가 수익률, 배당 수익률 등을 계산하여 투자 결정을 내리는 데 활용할 수 있습니다.
-
차트 및 그래프 활용: 엑셀의 차트 기능을 활용하여 시각적으로 데이터를 표현할 수 있습니다. 이를 통해 데이터의 추세를 한눈에 파악할 수 있게 됩니다.
아래 표는 데이터 가공 및 분석에 사용할 수 있는 몇 가지 기법을 정리한 것입니다.
| 기법 | 설명 |
|---|---|
| 데이터 정리 | 필요한 데이터만을 선별하여 정리 |
| 지표 계산 | 추가적인 투자 지표를 계산 |
| 차트 생성 | 시각적으로 데이터 추세를 표현하기 위한 차트 생성 |
결론
VBA를 활용하여 야후 파이낸스에서 데이터를 가져오는 방법은 매우 유용합니다. 이를 통해 시간과 노력을 절약하고, 데이터 분석의 효율성을 높일 수 있습니다. 본 글에서는 데이터 수집, 크롤링, 가공 및 분석의 전반적인 과정을 다루었습니다. 이러한 방법을 통해 개인 투자자들도 보다 체계적으로 데이터를 분석하고, 자신의 투자 결정을 내리는 데 도움을 받을 수 있을 것입니다.
항상 데이터를 정확하게 분석하고, 자신의 투자 전략에 맞게 활용하는 것이 필요합니다. 지속적인 학습과 실습을 통해 데이터 분석 능력을 향상시키시길 바랍니다. ```