inflearn logo
강의

講義

知識共有

Selenium基本コース

スマートストア商品ランキングトラッキングプログラムロジックコーディング

7강 질문이 있습니다.

522

em2day2047

投稿した質問数 2

1

상품고유번호(data-i)가 아닌 업체고유번호(data-ms)로 했을 때는 왜 작동이 안되는 걸까요?

2페이지에 분명히 있는데, 못찾고 계속 지나갑니다.

알려주시면 감사하겠습니다.

 

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import chromedriver_autoinstaller

chromedriver_autoinstaller.install()

드라이버 = webdriver.Chrome()


진짜등수 = -1
등수 = -1

for 페이지인덱스 in range(1, 15):

    # 1. 페이지 방문
    검색쿼리 = "em"
    쇼핑링크 = f"https://msearch.shopping.naver.com/search/all?frm=NVSHPAG&origQuery={검색쿼리}&pagingIndex={페이지인덱스}&pagingSize=40&productSet=total&query={검색쿼리}&sort=rel&viewType=lst"
    드라이버.get(쇼핑링크)
    time.sleep(2)


    # 2. 페이지 4-5번 내리기
    for _ in range(4):
        드라이버.execute_script("window.scrollBy(0,10000);")
        time.sleep(0.5)

    # 3. 타겟 상품이 노출되고 있는지 확인
    # 4. 없다면 다음페이지로 이동
    try:
        타겟상품코드 = "4627652"
        타겟상품_셀렉터 = f'a[data-ms="{타겟상품코드}"]'
        찾은상품_엘리먼트 = 드라이버.find_element(By.CSS_SELECTOR, 타겟상품_셀렉터)
        데이터 = 찾은상품_엘리먼트.get_attribute('data-nclick')
        진짜등수 = 데이터.split(f"{타겟상품코드},r:")[-1].split(',')[0]
        등수 = int(진짜등수) - (int(페이지인덱스) - 1) * 40
        break
    except:
        print(f"{페이지인덱스} 페이지에서 타겟상품을 못찾음")
        #next page 방문해야 함

print(f"내상품의 진짜 등수는 : {진짜등수} 입니다.")
print(f"내 상품은 {페이지인덱스} 페이지의 {등수}위에 노출되고 있습니다.")



input()

python selenium

回答 1

1

lread90

확인해보니 data-nclick의 내용보시면 그 안에 80118943823 상품 고유번호가 들어갑니다

image

이러면 코드가 변경이 되어야하는데 위쪽 보시면 ,r: 뒤에 등수 값이 있어야하는데 없는 것으로 보아 ,r: 값을 사용하실 수는 없고

# 기존 코드
진짜등수 = 데이터.split(f"{타겟상품코드},r:")[-1].split(',')[0]

# 변경 코드 but, 등수정보가 포함이 안 되어있는경우
진짜등수 = 데이터.split(f",r:")[-1].split(',')[0]

find_elements를 통해서 몇번째 인덱스에 있는지 찾는 코드 형태로 변경이 되어야합니다

 

0

em2day2047

선생님

제가 이해가 잘 안되는데요.

먼저

개발자도구 elements 내용은 다름과 같습니다.


image

그런데,

타겟상품코드 = "4627652"

타겟상품_셀렉터 = f'a[data-ms="{타겟상품코드}"]'

위의 코드에서는 작동이 안되고

 

타겟상품코드 = "83449501731"

타겟상품_셀렉터 = f'a[data-i="{타겟상품코드}"]'

이 코드에서는 작동이 되는 이유를 모르겠습니다.

 

참고로, data-ms 값은 업체고유값으로 보이니다.

 

답변 주시면 정말 감사하겠습니다.

 

 

ipython 설치가 안되는거 같습니다.

0

7

1

이론 공부법 요약본 버전 업데이트 문의

0

10

1

피드백 내용 문의드립니다.

0

17

0

백준 서비스 종료로 인한 강의 자료 업데이트 요청드립니다.

0

21

1

백준 사이트 준비중이라 문제를 볼 수 가 없어요

0

14

1

작업형 1번문제... 환경관련

0

22

2

09차 네이버 영화 리뷰 수집 실습 관련 질문

0

23

1

12회 기출은 언제 업데이트 될까요??

0

28

2

알파벤티지 sleep(5) 관련 문의

1

35

2

강의 자료 및 코드 수령

0

29

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

35

2

실전 계좌에서 운영하고 계신 분 계신가요?

1

39

2

수강기간 연장 문의

0

28

2

수강기간 연장문의

0

34

2

현재 네이버 코드가 바뀐거 같습니다.

0

425

2

소스코드 링크

0

294

1

scroll 속성이 없다고 나오는 것 같아요..

0

468

2

스마트스토어 상품순위 문의 있습니다.

1

339

2

구름 ide에서 folder 아래 Scripts 폴더가 안 만들어져요

0

456

2

가상환경 설정 후 크롬 드라이버 다운받고 python .\app.py 코드를 쳤는데 에러가 나옵니다.

1

610

1

크롬 브라우저를 설치했는데 오류가 납니다

1

2700

1

BY.xpath로 자녀값도 가져올 수 있나요??

1

433

1

맥에서 개발환경 설정하는 법

1

465

1

click() 이 작동하지 않네요.

1

469

1