Allen's 데이터 맛집

셀레니움을 사용하여 네이버 항공권 자동으로 알아보기 본문

Programming/Web Scraping

셀레니움을 사용하여 네이버 항공권 자동으로 알아보기

Allen93 2023. 8. 10. 22:57

이번에는 네이버 항공권페이지에 들어가서 자동으로 날짜와, 장소를 선택하고 제일 빠른 비행기표를 선택하여 출력해 보겠습니다!

from selenium import webdriver
import time

#셀레니움 메크로 중, 로딩시간일때 끝나면 다음 항목으로 이동
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(
    'C:\\Users\Vector\Desktop\PythonWorkSpace\.vscode\webscraping_basic\chromedriver.exe')
browser.maximize_window()  # 창 최대화

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

browser.find_element_by_link_text('가는날 선택').click()

# 이번달 30, 31일 선택
# browser.find_elements_by_link_text("30")[0].click()  # -> 이번달
# browser.find_elements_by_link_text("31")[0].click()  # -> 이번달


# 다음달 27, 27 선택

browser.find_elements_by_link_text("1")[1].click()  # -> 다음달
browser.find_elements_by_link_text("2")[1].click()  # -> 다음달

# 제주도 선택

browser.find_element_by_xpath(
    "//*[@id='recommendationList']/ul/li[1]/div/dl/dt").click()

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

#해당 xpath란 조건으로 엘리먼트가 나올 때 까지 기다려 달라 브라우져를 최대 10초까지
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)


time.sleep(300)

>>>

728x90