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

S&P 500 지수와 관련 데이터 실시간으로 추출하기

이번 수업에서는 Yahoo Finance에서 S&P 500 주식 데이터를 추출하는 방법을 알아보겠습니다.


1. 현재가 가져오기

find_elementㄹ로 현재가 가져오기
current_price_element = driver.find_element(By.XPATH, "//div[contains(@class, 'price')]//fin-streamer[contains(@class, 'livePrice')]//span")
current_price = current_price_element.text

find_element()는 페이지에서 특정 요소를 찾습니다.

XPATH로 정의된 내용은 다음과 같습니다.

  • div[contains(@class, 'price')] : div 태그 중 price 클래스를 포함하는 요소

  • fin-streamer[contains(@class, 'livePrice')] : fin-streamer 태그 중 livePrice 클래스를 포함하는 요소

  • span : span 태그

즉 XPATH는 div 태그 중 price 클래스를 포함하고, fin-streamer 태그 중 livePrice 클래스를 포함하며, span 태그인 요소를 선택합니다.


2. Previous Close 값 가져오기

Previous Close 값 가져오기
previous_close_element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'fin-streamer[data-field="regularMarketPreviousClose"]')))
previous_close = previous_close_element.text

By.CSS_SELECTOR는 CSS 선택자를 사용하여 data-field="regularMarketPreviousClose" 속성을 가진 fin-streamer 태그를 선택합니다.

XPATH로 정의된 내용은 다음과 같습니다.

  • fin-streamer[data-field="regularMarketPreviousClose"] : fin-streamer 태그 중 data-field="regularMarketPreviousClose" 속성을 가진 요소

previous_close_element에는 Previous Close 값을 가진 요소가 저장됩니다.

previous_close_element.text는 Previous Close 값을 텍스트로 가져옵니다.


3. Volume 값 가져오기

Volume 값 가져오기
volume_element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'fin-streamer[data-field="regularMarketVolume"]')))
volume = volume_element.text

data-field="regularMarketVolume" 속성을 가진 fin-streamer 태그를 선택하여 Volume 값을 가져옵니다.

volume_element.text는 Volume 값을 텍스트로 가져옵니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!