인프런 커뮤니티 질문&답변

동그란 강아지님의 프로필 이미지
동그란 강아지

작성한 질문수

[2024 개정판] 이것이 진짜 크롤링이다 - 기본편

(강의소개) 비전공자도 OK! 데이터 수집 한방에 끝내버리는 웹크롤링의 정석!

네이버쇼핑 검색창 넘어가기전 팝업창이 안사라져요

작성

·

128

0

다른답변에서 popup_close_button = browser.find_element(By.CSS_SELECTOR, "팝업 닫기 버튼의 CSS 선택자")

popup_close_button.click()

이 방법도 해보고

팝업창 닫기 버튼

browser.find_element(By.XPATH, '/html/body/div[3]/div/div[1]/div/div[4]/div/div/button[1]').click()

이렇게도 입력해 봤는데 계속 사라지지가 않아서 검색 단계로 넘어갈수가 없네요 ㅠㅠㅠㅠㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
님, 웹 크롤링에서 네이버 쇼핑 검색창으로 넘어가기 전 팝업창이 사라지지 않는 문제가 발생하셨군요. 여러 방법을 시도하셨지만 문제가 해결되지 않았다면, 팝업창이 여러 개 존재하거나, 팝업창의 구조가 변경되었을 가능성이 있습니다. 다음의 방법을 추가로 시도해 볼 수 있습니다.

  1. 팝업창이 여러 개일 경우: 페이지에 여러 개의 팝업창이 존재한다면, 각각의 팝업창을 닫는 코드를 작성해야 합니다. 예를 들어, 모든 팝업창을 찾아서 반복문을 사용해 닫는 방법입니다.
popups = browser.find_elements(By.CSS_SELECTOR, "팝업 닫기 버튼의 CSS 선택자")
for popup in popups:
    popup.click()
  1. 대기 시간 추가하기: 웹 페이지의 모든 요소가 완전히 로드될 때까지 기다린 후, 팝업창을 닫는 작업을 시도합니다. Selenium의 time.sleep() 함수를 사용해 볼 수 있습니다.
import time
time.sleep(2) # 2초 동안 대기
popup_close_button = browser.find_element(By.CSS_SELECTOR, "팝업 닫기 버튼의 CSS 선택자")
popup_close_button.click()
  1. 예외 처리하기: 만약 특정 요소를 찾을 때 오류가 발생할 경우를 대비해, 예외 처리를 사용해 로그를 남기거나, 다른 방식으로 대처할 수 있습니다.
from selenium.common.exceptions import NoSuchElementException
try:
    popup_close_button = browser.find_element(By.CSS_SELECTOR, "팝업 닫기 버튼의 CSS 선택자")
    popup_close_button.click()
except NoSuchElementException:
    print("팝업창을 찾을 수 없습니다.")

위 방법 외에도 파이썬 코드를 검토해 볼 때, 실제 웹 페이지의 구조가 바뀌었거나, 셀렉터가 올바르지 않은 경우가 많으므로 CSS 선택자나 XPath가 최신 상태인지 다시 한번 확인해보시길 권장드립니다.

동그란 강아지님의 프로필 이미지
동그란 강아지

작성한 질문수

질문하기