□ 목표 : 특정 키워드 상품에 대한 naver 쇼핑 위치(순서)를 조회/출력
→ 자신이 판매하는 상품의 순서(순위)를 파악 가능함
□ 필요사항
○ 상품별 고유값을 분석 후 임의로 특정 상품에 대한 고유값을 검색하여 해당 상품의 위치 출력
○ 자동 스크롤기능 → 조회하고자하는 글이 없을시 자동으로 스크롤하여 내려가기 위함임
□ Khow_How
○ URL 분석 : 주소상에서 키워드 값 또는 페이지네이션 값을 넣는 패턴 확인
○ 고유값을 갖는 마땅한 키값이 없다면 개발자 도구에서 모바일 화면 사이즈로 변환 후 다시 개발자 도구를 킨 후 숨겨진 키값을 탐색할 것
*PC 및 모바일 화면별 키값이 다른 경우가 있음
*해당 코딩 및 특정상품 선정은 글쓴이 임의로 지정하였음
#셀레니움 창 생성을 위한 라이브러리 호출 실행
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
#드라이버 크롬브라우져 실행
driver = webdriver.Chrome()
#실행된 크롬 최대사이즈
driver.maximize_window()
#제품명
pd_name = '꿀사과'
#1단계 : URL로 1페이지 방문
target_page = f'https://msearch.shopping.naver.com/search/all?query={pd_name}'
driver.get(target_page) #---------접속
print('1단계 작업 완료')
time.sleep(3)
#5번 스크롤하여 맨 끝까지 내리기
for i in range(5):
driver.execute_script('window.scrollBy(0,10000)') #---------스크롤
time.sleep(2)
#print('2단계 작업완료')
#타겟 상품이 페이지에 노출되고 있는지 확인
try:
find_pd_cd = '85842816116' #---------타겟상품의 고유값
find_pd_selector = f"a[data-i = '{find_pd_cd}']" #---------타겟상품의 고유값
find_pd_element = driver.find_element(By.CSS_SELECTOR, find_pd_selector)
find_pd_info = find_pd_element.get_attribute('data-nclick')
#받아온 정보를 .split()으로 분리
find_pd_info_list = find_pd_info.split(',')
print(find_pd_info_list)
find_pd_info_list_num = int(find_pd_info_list[2].split(':')[1])
print(f'{find_pd_info_list_num}\t위치에 있음')
except:
print('타겟상품 링크 못찾음, 계속 검색진행')
#작업종료
driver.quit()
input()
'Python > Python_Crawling' 카테고리의 다른 글
크롤링 예제 2 (0) | 2023.12.19 |
---|---|
크롤링 예제 1 (0) | 2023.12.19 |
셀레니움(Selenium) 기본예제 : naver view 특정글 위치 (0) | 2023.12.13 |
셀레니움(Selenium) 기본기능 (0) | 2023.12.12 |
셀레니움(Selenium) (0) | 2023.12.11 |