커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-4 네이버 쇼핑 크롤링 - 데이터 처리 오류 건
[왕초보] 칼퇴를 부르는 파이썬 업무 자동화 v0
3주차
북마크
음*원
댓글
3
추천
0
조회수
17
조회수
17
답변 완료

안녕하세요! * 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.



안녕하세요!

코드 실행 시 후드티 입력 후 스크롤 내리는 부분에서 오류가 작동해서 스탑되었습니다.


스파르타 즉문즉답


작성코드

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


# 쇼핑 메뉴 클릭하기

driver.find_element(By.CSS_SELECTOR, ".service_icon.type_shopping").click()

time.sleep(1)


# # 새창을 바라보게 만들기

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


# 화면 대기 후, 닫기 버튼을 눌러 진행하게 만들기

time.sleep(3)

popup_modal = driver.find_element(

    By.CSS_SELECTOR, "button._buttonArea_close_34bcm")

popup_modal.click()


# 무한 스크롤

while True:

    # 맨 아래로 스크롤 내린다.

    driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END)


    # 스크롤 사이 페이지 로딩 시간

    time.sleep(1)


    # 스크롤 후 높이

    after_h = driver.execute_script("return window.scrollY")

    if after_h == before_h:

        break

    before_h = after_h



# 상품 정보 div

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].get_attribute('href') 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()




오류코드

PS C:\Users\tradi\Desktop\automation\crawling> & c:/Users/tradi/Desktop/automation/crawling/.venv/Scripts/python.exe c:/Users/tradi/Desktop/automation/crawling/crawling_naver.py

Traceback (most recent call last):

 File "c:\Users\tradi\Desktop\automation\crawling\crawling_naver.py", line 46, in <module>

  popup_modal = driver.find_element(

 File "C:\Users\tradi\Desktop\automation\crawling\.venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 738, in find_element

  return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]

 File "C:\Users\tradi\Desktop\automation\crawling\.venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 344, in execute

  self.error_handler.check_response(response)

 File "C:\Users\tradi\Desktop\automation\crawling\.venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response

  raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"button._buttonArea_close_34bcm"}

 (Session info: chrome=128.0.6613.119); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception

Stacktrace:

    GetHandleVerifier [0x00007FF68234B5D2+29090]

    (No symbol) [0x00007FF6822BE689]

    (No symbol) [0x00007FF68217B1CA]

    (No symbol) [0x00007FF6821CEFD7]

    (No symbol) [0x00007FF6821CF22C]

    (No symbol) [0x00007FF6822197F7]

    (No symbol) [0x00007FF6821F672F]

    (No symbol) [0x00007FF6822165D9]

    (No symbol) [0x00007FF6821F6493]

    (No symbol) [0x00007FF6821C09B1]

    (No symbol) [0x00007FF6821C1B11]

    GetHandleVerifier [0x00007FF682668C5D+3295277]

    GetHandleVerifier [0x00007FF6826B4843+3605523]

    GetHandleVerifier [0x00007FF6826AA707+3564247]

    GetHandleVerifier [0x00007FF682406EB6+797318]

    (No symbol) [0x00007FF6822C980F]

    (No symbol) [0x00007FF6822C53F4]

    (No symbol) [0x00007FF6822C5580]

    (No symbol) [0x00007FF6822B4A1F]

    BaseThreadInitThunk [0x00007FFB1E7F7374+20]

    RtlUserThreadStart [0x00007FFB1F95CC91+33]


취소
 공유
취소
댓글 0
댓글 알림
나의얼굴