본문 바로가기
내마음대로만들어보자/크롤링

selenium 활용 - 네이버 항공권

by 소농민! 2021. 6. 8.
728x90

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome("./chromedriver 2")
browser.maximize_window() #창 최대화

url = "https://flight.naver.com/flights/"
browser.get(url) # url 이동

# 가는날 선택 클릭
browser.find_element_by_link_text("가는날 선택").click()

# 이번달 27일, 28일 선택
# browser.find_elements_by_link_text("27")[0].click() #[0] 이번달
# browser.find_elements_by_link_text("28")[0].click() #[0] 이번달

# 다음달 27일, 28일 선택
# browser.find_elements_by_link_text("27")[1].click() #[1] 다음달
# browser.find_elements_by_link_text("28")[1].click() #[1] 다음달

# 이번달 27일, 다음달 28일 선택
browser.find_elements_by_link_text("27")[0].click() #[0] 이번달
browser.find_elements_by_link_text("28")[1].click() #[1] 다음달

#제주도 선택
browser.find_element_by_xpath("//*[@id='recommendationList']/ul/li[1]").click()

#항공권 검색 클릭
browser.find_element_by_link_text("항공권 검색").click()

# WebDriverWait를 통해 browser를 최대 10초동안 기다리게한다. 10초안에 EC는 어떤조건 XPATH에 해당하는 값이 위치할떄까지 기다리라는 의미
try:
elem = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//[@id='content']/div[2]/div/div[4]/ul/li[1]")))
# 성공했을때 동작 수행
print(elem.text)
finally:
browser.quit()

# 첫번째 결과 출력
# elem = browser.find_element_by_xpath("//*[@id='content']/div[2]/div/div[4]/ul/li[1]")
# print(elem.text)