본문 바로가기
  • 기록
파이썬

웹 스크래핑8(selenium활용-네이버 항공권)

by juserh 2021. 7. 8.
from selenium import webdriver

browser = webdriver.Chrome()
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()  # [0]->다음달
# browser.find_elements_by_link_text("28")[1].click()  # [0]->다음달

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

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

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

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

위 결과 error메시지와 함께 no such element라고 나옴

-->로딩화면 때문에 elem 올바르게 얻을 수 없었음

------>import time으로 특정 시간동안 기다리게 함(시간 낭비 문제) or 해당 엘리먼트 나올 때까지만 기다리기

 

*임포트 추가

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

 

 

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()