Selenium으로 미국 주가 지수 크롤링하기
앞서 소개한 requests
와 BeautifulSoup
라이브러리를 이용하면 특정 웹 페이지의 HTML 코드를 가져와 원하는 데이터를 추출할 수 있습니다.
하지만 웹 페이지가 동적으로 생성되는 경우, 즉 사용자의 행동에 따라 웹 페이지의 내용이 변경되는 경우에는 requests와 BeautifulSoup 라이브러리만으로 원하는 데이터를 추출할 수 없습니다.
데이터가 시시각각 변하는 현대 웹사이트는 다양한 데이터를 서버에서 받아와 사용자에게 보여주는데, 이러한 웹 페이지는 동적 웹 페이지
라고 합니다.
requests와 BeautifulSoup 라이브러리는 이렇게 서버에서 수신한 동적 데이터를 처리할 수 없기 때문에, 동적 데이터를 추출하려면 다른 방법이 필요합니다.
이러한 경우에 동적 웹 페이지를 크롤링하기 위해 사용하는 것이
셀레니움(Selenium)
라이브러리입니다.
Selenium 라이브러리 소개
Selenium
은 웹 페이지를 제어하기 위한 라이브러리로, 웹 페이지를 자동으로 조작하거나 테스트하기 위해 사용합니다.
Selenium은 웹 브라우저를 직접 제어하기 때문에, 웹 페이지의 동적 데이터를 크롤링하거나 웹 페이지의 특정 요소를 클릭하거나 입력하는 등의 작업을 수행할 수 있습니다.
Selenium으로 미국 주가 지수 크롤링 실습
이번 실습에서는 Selenium을 이용하여 미국 주가 지수를 크롤링하는 방법을 소개합니다.
실습 화면의 코드는 Yahoo Finance 웹사이트에서 미국 주가 지수를 실시간으로 크롤링하는 코드입니다.
# Chrome 웹드라이버를 실행하여 브라우저 창 열기
driver = webdriver.Chrome()
# Yahoo Finance의 'Markets' 페이지로 이동
driver.get('https://finance.yahoo.com/markets/')
# 페이지가 완전히 로드될 때까지 대기 (최대 10초 대기)
wait = WebDriverWait(driver, 10)
...(중략)...
Selenium 관련 자세한 내용은 퇴근을 앞당기는 업무 자동화 필수 지식 코스의 Chapter 3에서 자세히 다루겠습니다.
코드 에디터의 초록색으로 표시된 ▶︎ 실행
버튼을 누르고, 미국 주가 지수를 실시간으로 확인해 보세요!