본문으로 건너뛰기
실습하기

Selenium으로 미국 주가 지수 크롤링하기

앞서 소개한 requestsBeautifulSoup 라이브러리를 이용하면 특정 웹 페이지의 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에서 자세히 다루겠습니다.

코드 에디터의 초록색으로 표시된 ▶︎ 실행 버튼을 누르고, 미국 주가 지수를 실시간으로 확인해 보세요!