야후 파이낸스(Yahoo Finance)는 금융 데이터와 투자 정보를 제공하는 인기 있는 온라인 플랫폼입니다. 여기에는 주식, 지수 펀드, 환율, 채권, 상품 등 다양한 금융 상품에 대한 실시간 및 과거 데이터가 포함됩니다. 이 글에서는 야후 파이낸스 데이터를 쉽고 빠르게 추출할 수 있는 훌륭한 야후 파이낸스 스크래퍼를 소개합니다.
야후 파이낸스 웹 스크래핑 합법화
당연히 합법입니다. 야후 파이낸스 웹 사이트에서 이용할 수 있는 대부분의 데이터는 오픈 소스 및 공개된 정보입니다. 그러나 이러한 데이터를 추출하고 사용할 때는 여전히 해당 국가의 웹 스크래핑 법규를 준수하여야 합니다.
다음과 같은 Yahoo Finance 데이터를 추출할 수 있습니다.
- 주식시장 뉴스 업데이트
- 기업의 현주가
- 회사 주가 상승 하강 추세
- 뮤추얼 펀드 및 ETF
- 통화 및 암호화폐의 가치
비즈니스 시장에서 증권 금융 데이터를 분석하면 비즈니스 전략을 개선하는 데 유용한 인사이트를 생성할 수 있습니다.
야후 파이낸스 API
야후 파이낸스 API는 개발자와 기업에 금융 데이터와 분석을 제공하는 플랫폼입니다. 개발자가 현재 및 과거 주가, 환율, 재무제표, 뉴스 및 기사 등 다양한 재무 데이터에 액세스할 수 있는 다양한 API를 제공합니다.
하지만 야후 파이낸스는 2017년 API 서비스를 공식적으로 중단했습니다. 즉, 야후 파이낸스에서 데이터를 가져오고 싶다면 다른 방법을 찾아야 합니다.
코딩 없이 야후 파이낸스에서 데이터 추출하기
야후 파이낸스를 추출할 수 있는 여러 가지 방법이 있습니다. 그중 일부는 코딩 지식이 필요하지 않습니다. 가장 널리 사용되는 무료 오픈 소스 소프트웨어 중 하나인 최고의 웹 스크래핑 도구 Octoparse를 소개해 드리겠습니다. 여러 웹 사이트에서 데이터를 대량으로 추출하고, 한 번에 최대 10,000개의 링크를 지원합니다.
Octoparse는 야후 파이낸스 사이트에서 데이터를 자동으로 인식할 수 있으며 몇 번의 클릭만으로 데이터를 가져올 수 있는 바로 쓸 수 있는 템플릿도 있습니다. 추출한 데이터를 엑셀, CSV, 데이터베이스 등 여러 형식으로 내보낼 수 있습니다. 예약 일정 기능으로 시간별, 일별 또는 주별로 추출 실행을 스케줄할 수도 있습니다.
야후 파이낸스 데이터 추출을 위한 3단계
Octoparse를 다운로드하여 설치한 후 다음 단계를 따라 야후 파이낸스에서 데이터를 추출할 수 있습니다.
1단계: 야후 파이낸스에서 복사한 URL 입력
데이터를 추출하는 데 필요한 야후 파이낸스 페이지를 열고 페이지 링크를 복사합니다. Octoparse 검색어 입력창에 URL을 입력하고 검색 버튼을 클릭합니다. 자동 인식을 시작합니다.
2단계: 워크플로우를 변경
자동 인식 프로세스기 완료된 후 워크플로우를 만듭니다. 미리보기 섹션에서 추출된 데이터를 볼 수 있으며, Octoparse를 사용하면 추출할 데이터 필드를 변경할 수 있습니다.
3단계: 워크플로우를 실행하여 야후 파이낸스 데이터 추출
모든 변경 사항이 저장된 후 실행 버튼을 클릭하여 데이터를 추출합니다. 추출 결과를 로컬 디바이스에 다운로드하거나 데이터베이스에 저장할 수 있습니다.
Python으로 야후 파이낸스 데이터를 추출하는 방법
Python을 사용하여 야후 파이낸스를 스크래핑하려면 오픈 소스에서 사용할 수 있는 여러 파이썬 모듈과 방법을 사용할 수 있습니다. 금융 데이터를 추출하는 가장 간단한 방법 중 하나는 Beautiful Soup 라이브러리를 사용하는 것입니다. 이 방법을 단계별로 살펴보겠습니다.
1단계: 사용 중인 디바이스에 dependency를 설치하기
- pip install bs4
- pip install requests
- pip install pandas
2단계: 모듈 가져오기
#import modules
import requests
from bs4 import BeautifulSoup
import pandas as pd
3단계: 웹페이지 URL을 가져오고 오류를 확인하기
#get the URL using response variable
my_url = "https://finance.yahoo.com/news"
response = requests.get(my_url)
#Catching Exceptions
print("response.ok : {} , response.status_code : {}".format(response.ok , response.status_code))
print("Preview of response.text : ", response.text[:500])
4단계: 웹 페이지의 HTML 데이터를 Beautiful Soup 개체로 검색하는 기능을 만들기
#utility function to download a webpage and return a beautiful soup doc
def get_page(url):
response = requests.get(url)
if not response.ok:
print('Status code:', response.status_code)
raise Exception('Failed to load page {}'.format(url))
page_content = response.text
doc = BeautifulSoup(page_content, 'html.parser')
return doc
#function call
doc = get_page(my_url)
5단계: 데이터를 추출 및 저장하기
#appropritae tags common to news-headlines to filter out the necessary information.
a_tags = doc.find_all('a', {'class': "js-content-viewer"})
print(len(a_tags))
#print(a_tags[1])
news_list = []
#print top 10 Headlines
for i in range(1,len(a_tags)+1):
news = a_tags[i-1].text
news_list.append(news)
print("Headline "+str(i)+ ":" + news)
news_df = pd.DataFrame(news_list)
news_df.to_csv('Market_News')
마무리
재무 정보를 긁어 모으면 비즈니스 세계에서 경쟁력을 얻을 수 있습니다. 이제 야후 파이낸스를 긁어모으는 기본을 배웠으니 여러 소스에서 데이터를 추출하여 유용한 정보 세트로 컴파일해 보십시오. 이 정보에서 얻은 추론을 다양한 형태로 적용하고 추출된 데이터를 최대한 활용할 수 있는 방법을 설명합니다. 이 기사가 금융 웹 스크래핑의 세계로 뛰어들도록 영감을 주기를 바랍니다.