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 강의를 등록해 주세요!