커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
네이버 쇼핑 크롤링 - 데이터 처리 > 리뷰 수 및 이미지 링크 크롤링 안됨
칼퇴를 부르는 파이썬 업무 자동화
챕터 3
북마크
정*림
댓글
1
추천
0
조회수
11
조회수
11
답변 완료

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

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


'총 리뷰 수': '리뷰 없음', '이미지': '이미지 없음'

강의 촬영 당시와 네이버 구조가 달라진 것인지 리뷰 수와 이미지 링크 크롤링이 되지 않습니다.




스파르타 즉문즉답



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_83jy9")
search.click()


search.send_keys("후드티")
search.send_keys(Keys.ENTER)


search = driver.find_element(
    By.CSS_SELECTOR, "._gnbContent_link_search_p7UXH")
search.click()


scroll_pause_time = 1
scroll_count = 0
max_scrolls = 1


while scroll_count < max_scrolls:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(scroll_pause_time)
    scroll_count += 1
    print(scroll_count)


# 상품 정보 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_grade__IzyU3 > .product_num__fafe5")
    review_total = review_totals[0].get_attribute("textContent").strip() if review_totals else "리뷰 없음"


    # 이미지 찾기
    images = item.find_elements(By.CSS_SELECTOR, '.thumbnail_thumb__Bxb6Z > img')
    image = images[0].get_attribute('data-src') if images else "이미지 없음"


    product_info = {
        '상품명': name,
        '가격': price,
        '링크': link,
        '총 리뷰 수': review_total,
        '이미지': image
    }


    print(product_info)


driver.quit()


{'상품명': '아미 맨투맨 티셔츠 후드티 긴팔티 AMI 컬렉션', '가격': '186,000원', '링크': 'https://cr.shopping.naver.com/adcr?x=3fILatzTMIACjTdhAq8yjP%2F%2F%2Fw%3D%3DsBiTDQCW331OqyWazlL5ZQqZ8%2B10MiD2%2FBdzUWqHr13jEXyoxfDeBr6wN5jJ55hr7ILRX%2FU3XgSa%2B2zAQFcqrmB4pza8ebIOIXPrPsGGS95ek6v2w9jBqMGR4TTsgYaQnga2WjbirYTb1BsKFYXkqNjp9IUTG%2FeqJpbP5pPginlAhhqnXjobmQcrIX3h8MYgu5QP%2FA8RbBWuWDPlcnJwAIkuG%2FicFY3q9hGdjro9%2BnxSccyQfeu7GxfZFiexU%2BJtlXNYGFE%2BdOYk8P3CE1OovDC8D3MaAAsZGtY5RY9zXDyo%2Fa18qhDQ1A%2FKJp3fgBDor391W%2FC1w5SVs2sYtTdFSen6D48lYO7dsFKRUzQpmzJ9kCTRDn%2FlfC6WMCIOxxf7ndtgTR7%2FiQOndBh6mpaSN4NI1e74zER4d%2BFdkN0E2Fa8UIkt5M0yIil13vZMydQVHBqdTlKKyt8AHYvbGNWtbNq4ssEnG%2Bvu89bkNv%2Be%2BF5AFdwrht1%2BOT5Jrd9fJsadfjRyB2rd4WMhSn3RpGcjGnlxaAs8w%2Bn3sP%2FgKURBUpY1ZGRNCg5d65MKF6Oy0d4jP%2BFdM8rQCC7p0PpDEZm0kFfBk2UzP8P%2FEoLfX7l3nMTIJRpH0zSBrkEAlMKNoq6724BfBipPAQnp8NsGWBrbs141jIDyGIgOHqcFabW3M0e4%3D&nvMid=82597063149&catId=50000830', '총 리뷰 수': '리 뷰 없음', '이미지': '이미지 없음'}
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴