Yahoo Finance에서 주식 데이터를 실시간으로 수집하기
시시각각 변하는 주식 시장! 실시간으로 주식 데이터를 수집해 주기적으로 저장하고 싶다면 어떻게 해야 할까요?
이번 수업에서는 Selenium을 활용하여 Yahoo Finance에서 주식 데이터를 동적으로 추출하는 방법을 알아보겠습니다.
동적 데이터 추출하기
동적 데이터는 웹 페이지의 두뇌 역할을 하는 JavaScript로 생성되는 데이터로, 사용자가 웹사이트에 접속한 후에 생성되거나 특정 행동을 취하면 변경될 수 있습니다.
이와 같은 동적 데이터는 BeautifulSoup과 Requests로는 가져올 수 없습니다.
하지만 Selenium을 사용하면 웹 페이지에서 JavaScript를 실행하고, 동적 데이터를 가져올 수 있습니다.
실습 화면의 코드를 단계별로 살펴보겠습니다.
실습 코드내 이해하기 어려운 부분은 학습 도구의 AI 튜터를 활용해 질문해 보세요.
1. 필요한 패키지 불러오기
-
selenium: 웹 페이지에서 동적인 데이터를 가져옵니다. -
pandas: 데이터를 표 형태로 정리하고 처리합니다. -
webdriver: Selenium을 사용해 웹 브라우저를 제어합니다. -
By: 웹 페이지에서 요소를 찾는 방법을 지정합니다. -
ActionChains: 웹 페이지에서 마우스와 키보드 동작을 수행합니다. -
EC: 웹 페이지에서 요소가 나타날 때까지 기다립니다.
2. 웹 브라우저 열기
웹 브라우저 열기
# Chrome 웹드라이버를 실행하여 브라우저 창 열기
driver = webdriver.Chrome()
# Yahoo Finance의 'Markets' 페이지로 이동
driver.get('https://finance.yahoo.com/markets/')
크롬 브라우저를 실행하고 Yahoo Finance의 'Markets' 페이지로 이동합니다.
참고로 Selenium은 크롬, 파이어폭스 등 다양한 브라우저를 지원합니다.