지난 일 이 년? 사이 웹 기술이 많이 다양화되고 개선되면서 자연스럽게 많은 사이트들이 개편된 것 같다. 게다가 관련 라이브러리와 패키지들의 규칙들도 조정되면서 이전 스크래핑 예제들을 그대로 사용하지 못하는 경우가 많아 지고 있는 것 같다. 관련 내용들을 디버깅하며 찾은 나름의 답들을 공유해본다.
이전 코드
# 1 네이버 메인 화면 이동
driver.maximize_window() # 브라우저 전체 창으로
url="https://flight.naver.com/"
driver.get(url)
# 팝업닫기
driver.find_element(By.XPATH,"//*[@id='__next']/div/div[1]/div[9]/div/div[2]/button[2]").click()
time.sleep(2)
# 2 가는날 선택
driver.find_element(By.XPATH,"//*[@id='__next']/div/div[1]/div[4]/div/div/div[2]/div[2]/button[1]").click()
# 3 이달[0] 27일, 28일 선택
driver.find_elements(By.PARTIAL_LINK_TEXT,"27")[0].click()
driver.find_elements(By.PARTIAL_LINK_TEXT,"28")[0].click()
time.sleep(2)
수정 코드
# 1 네이버 메인 화면 이동
driver.maximize_window() # 브라우저 전체 창으로
url="https://flight.naver.com/"
driver.get(url)
# 팝업닫기
driver.find_element(By.XPATH,"//*[@id='__next']/div/div[1]/div[9]/div/div[2]/button[2]").click()
time.sleep(2)
# 2 가는날 선택
driver.find_element(By.XPATH,"//*[@id='__next']/div/div[1]/div[4]/div/div/div[2]/div[2]/button[1]").click()
# 3 이달[0] 27일, 28일 선택
driver.find_elements(By.XPATH,"//*[contains(text(), '27')]")[0].click()
driver.find_elements(By.XPATH,"//*[contains(text(), '28')]")[0].click()
time.sleep(2)
