
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
크롤링 기본 코드에 네이버 쇼핑몰 주소를 입력하는 것까지는 완벽했습니다.
홈페이지도 열리고 실행도 되었고 터미널에 목록 불러오기도 되었습니다.
그런데 최저가 등 기타 입력을 하면서 뭔가 오류가 생겼습니다.
셀레니움이 문제가 생긴 것인지 네이버 쇼핑몰에서 막은 것인지 실행이 되지 않습니다.
보고 계신 화면 전체를 캡처해

주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.
작성한 코드 및 에러 메세지
오류 발생 시, 작성한 코드 전체
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
import requests
from io import BytesIO
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver.Chrome(options=chrome_options)
# 웹 사이트 열기
driver.get('https://www.naver.com')
time.sleep(2)
driver.find_element(By.CSS_SELECTOR, ".service_icon.type_shopping").click() # 쇼핑 탭 클릭
time.sleep(2)
# 쇼핑 창으로 이동
new_window = driver.window_handles[1]
driver.switch_to.window(new_window)
driver.maximize_window()
search = driver.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs")
search.click()
search.send_keys("오리지널슬링백")
search.send_keys(Keys.ENTER)
before_h = driver.execute_script("return window.scrollY")
while True:
driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) # 스크롤 내리기 위해 END 키 누름
time.sleep(1)
after_h = driver.execute_script("return window.scrollY") # 이동후 스크롤 위치
if after_h == before_h: # 스크롤 위치가 동일 (끝까지 다 내렸을때)
break
before_h = after_h
items = driver.find_elements(By.CSS_SELECTOR, ".product_item__MDtDF")
for item in items:
# 상품명
names = item.find_elements(By.CSS_SELECTOR, ".product_title__Mmw2K")
name = names[0].text if names else "이름 없음"
# 가격 찾기
prices = item.find_elements(By.CSS_SELECTOR, ".price_num__S2p_v")
price = prices[0].text if prices else "가격 없음"
# 링크 찾기
links = item.find_elements(By.CSS_SELECTOR, ".product_title__Mmw2K > a")
link = links[0].text if links else "링크 없음"
# 리뷰 수 찾기
review_totals = item.find_elements(By.CSS_SELECTOR, ".product_num__fafe5")
review_total = review_totals[0].text if review_totals else "리뷰 없음"
# 이미지 찾기
images = item.find_elements(By.CSS_SELECTOR, '.thumbnail_thumb__Bxb6Z > img')
image = images[0].get_attribute('src') if images else "이미지 없음"
product_info = {
'상품명': name,
'가격': price,
'링크': link,
'총 리뷰 수': review_total,
'이미지': image,
}
print(product_info)
driver.quit()
에러 메시지를 첨부해 주세요.
(.venv) C:\Users\Desktop\coding\crawling>c:/Users/Desktop/coding/crawling/.venv/Scripts/python.exe c:/Users/Desktop/coding/crawling/crawling/crawling_naver.py
Traceback (most recent call last):
File "c:\Users\Desktop\coding\crawling\crawling\crawling_naver.py", line 28, in <module>
search.click()
File "c:\Users\Desktop\coding\crawling\.venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 93, in click
self._execute(Command.CLICK_ELEMENT)
File "c:\Users\Desktop\coding\crawling\.venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 394, in _execute
return self._parent.execute(command, params)
File "c:\Users\Desktop\coding\crawling\.venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 344, in execute
self.error_handler.check_response(response)
File "c:\Users\Desktop\coding\crawling\.venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <input type="text" class="_searchInput_search_text_3CUDs" title="검색어 입력" value=""> is not clickable at point (400, 71). Other element would receive the click: <div class="_layerWrapper_layer_20FCu">...</div>
(Session info: chrome=126.0.6478.63)
Stacktrace:
GetHandleVerifier [0x00007FF7D8453E32+31618]
(No symbol) [0x00007FF7D83CB099]
(No symbol) [0x00007FF7D828888A]
(No symbol) [0x00007FF7D82E022E]
(No symbol) [0x00007FF7D82DDBE2]
(No symbol) [0x00007FF7D82DB07B]
(No symbol) [0x00007FF7D82DA246]
(No symbol) [0x00007FF7D82CC281]
(No symbol) [0x00007FF7D82FD10A]
(No symbol) [0x00007FF7D82CBBA6]
(No symbol) [0x00007FF7D82FD320]
(No symbol) [0x00007FF7D831CA80]
(No symbol) [0x00007FF7D82FCEB3]
(No symbol) [0x00007FF7D82CA46B]
(No symbol) [0x00007FF7D82CB001]
GetHandleVerifier [0x00007FF7D8759FFD+3202381]
GetHandleVerifier [0x00007FF7D87A6A1D+3516269]
GetHandleVerifier [0x00007FF7D879C490+3473888]
GetHandleVerifier [0x00007FF7D8505D36+760454]
(No symbol) [0x00007FF7D83D6B3F]
(No symbol) [0x00007FF7D83D1CD4]
(No symbol) [0x00007FF7D83D1E62]
(No symbol) [0x00007FF7D83C120F]
BaseThreadInitThunk [0x00007FFE2573257D+29]
RtlUserThreadStart [0x00007FFE267AAF28+40]
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
