커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3-3, 3-4, 네이버 구조 변경에 따른 수정사항
[왕초보] 칼퇴를 부르는 파이썬 업무 자동화 v0
3주차
북마크
김*기
댓글
8
추천
0
조회수
38
조회수
38
답변 완료

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

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


안녕하세요

3-4 네이버 크롤링 데이터 수집 중인데요.

기존에 강의하실때 대비 네이버 구조가 변경 된거 같더라구요.

검색창에 내용 입력하는 부분의 경우, 어찌 저찌 해서 변경된 클래스 이름으로 업데이트해서 넣었는데,

검색창 입력후 나오는 내용 결과에서 item과 상품명을 제대로 못가져 오는것 같아요.


제가 생각하는 item class는 .compositeCardContainer_composite_card_container__jr8cb composite_card_container 이고

상품명 class는 basicProductCardInformation_title__Bc_Ng 인데

파이썬 run하고 나면 터미널에 값을 한개도 못가지고 오더라구요..

아마 뭔가 틀린것 같아서 체크해보려고 합니다.



----


참고) 터미널 런하면 나오는 메세지


Seulgiui-MacBookAir:homework seulgikim$ /Users/seulgikim/Desktop/homework/.venv/bin/python /Users/seulgikim/Desktop/homework/automation_result.py

/Users/seulgikim/Desktop/homework/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020

 warnings.warn(



보고 계신 화면 전체를

스파르타 즉문즉답

캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.




작성한 코드 및 에러 메세지

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


from openpyxl import load_workbook

from openpyxl.drawing.image import Image

from io import BytesIO


import time

import requests


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

Search.click()

Search.send_keys("아이폰16프로맥스 자급제 1tb")

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, ".compositeCardContainer_composite_card_container__jr8cb composite_card_container")


for item in items:

# 상품명

names = item.find_elements(By.CSS_SELECTOR, ".basicProductCardInformation_title__Bc_Ng")

name = names[0].text if names else "이름 없음"


print(names)

print(name)



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