데이타 크롤링을 하다보면 아래와 같은 드롭다운 메뉴를 선택해야하는 상황에 마주칩니다
오늘은 파이썬 selenium으로 드롭다운 목록에서 원하는 옵션을 선택해볼께요
Ctrl + Shift + C를 눌러 해당 요소를 자세히 확인해볼께요
해당 태그 <select>에는 여러 가지 옵션이 있는 것을 확인할 수 있어요
부산은 value 값이 0020 이네요
<select name="dptRsStnCd" id="dptRsStnCd" class="dropDownNoJqueryUi" style="color: #6f135e;">
<option value="" selected="">출발역</option>
<option value="0551">수서</option>
<option value="0552">동탄</option>
<option value="0553">평택지제</option>
<option value="0502">천안아산</option>
<option value="0297">오송</option>
<option value="0010">대전</option>
<option value="0507">김천(구미)</option>
<option value="0506">서대구</option>
<option value="0015">동대구</option>
<option value="0508">신경주</option>
<option value="0509">울산(통도사)</option>
<option value="0020">부산</option>
<option value="0514">공주</option>
<option value="0030">익산</option>
<option value="0033">정읍</option>
<option value="0036">광주송정</option>
<option value="0037">나주</option>
<option value="0041">목포</option>
</select>
name을 통해서 해당 요소에 접근하면되겠네요 (name은 "dptRsStnCd")
간단하게 파이썬 selenium 코드를 작성해볼께요
저희는 <option> 태그의 value 값을 통해서 부산을 선택해볼께요
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
option = Options()
# option.add_argument('--headless')
option.add_argument('--disable-gpu')
option.add_argument('--window-size=1920,1080')
option.add_argument('--start-maximized')
service = Service()
# service.creation_flags = CREATE_NO_WINDOW
driver = webdriver.Chrome(service=service, options=option)
driver.get('https://etk.srail.kr/main.do')
# 팝업처리
main_window_handle = driver.current_window_handle
WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(2))
for handle in driver.window_handles:
if handle != main_window_handle:
popup_window_handle = handle
driver.switch_to.window(popup_window_handle)
break
driver.close()
driver.switch_to.window(main_window_handle)
# 드롭다운
select_element = driver.find_element(By.NAME, 'dptRsStnCd')
select = Select(select_element)
select.select_by_value("0020")
실행해보면
SRT 사이트 접속 시 뜨는 팝업을 닫아주고 드롭박스를 찾아 value값이 0020인 부산을 잘 선택해주네요
728x90
'플그래밍 > 파이써언' 카테고리의 다른 글
[파이썬 & 크롤링] Selenium - iframe 내부 접근 법 (0) | 2023.08.04 |
---|---|
[파이썬 & 크롤링] Selenium "Select" - 드롭다운 옵션 추출 법 (0) | 2023.08.04 |
[파이썬 & 크롤링] Naver 증권 리서치 리포트 모아보기 (3) | 2023.07.29 |
[파이썬 & 크롤링] 시드물 제품 검색 및 리뷰 추출 프로그램 (0) | 2023.07.28 |
[파이썬] Selenium - webdriver 버젼 설정 법 (6) | 2023.07.22 |