본문 바로가기

Crawling (크롤링)/네이버 쇼핑

크롤링 - webdriver(selenium)으로 네이버 쇼핑 페이지 넘기기

반응형

* 안내

크롤링한 코드 파일이 보이지 않아 보내드리기 어렵습니다. 😢

 

 

 

 

[2020년 7월 12일 기준]

 

향후 태그명이 달라질 수도 있음.

 

 

 

나이키 모자 네이버 쇼핑 페이지

 

 

나이키 스우시 드라이핏 캡 548533 : 네이버쇼핑

판매되는 상품의 수량에 대해 2주, 1개월, 3개월, 6개월 단위로 추이를 보여주는 정보입니다.

search.shopping.naver.com

 

 

 

1. 페이지 바 찾기

 

웹드라이버 이용 (변수명 : browser)

 

 

 

브라우저로 위 url 접속

 

 

 

 

 

페이지 바 찾기

 

위 페이지 바의 태그의 아이디는 _price_list_paging 이다.

 

이를 page_bar 변수에 넣자

 

 

 

 

 

 

 

 

 

2. 페이지 바의 페이지들 찾기

 

위에서 찾은 page_bar 이용

 

 

이 페이지 바의 'a'태그에는 11개의 객체가 있다.

 

 

하나씩 꺼내서 text만 살펴보면

 

 

2부터 시작해 다음, 맨 뒤를 포함한 11개의 객체가 있는 것이다.

 

텍스트가 아니라 페이지 객체는 셀레늄의 send_keys('\n')으로 엔터를 입력해 

 

페이지를 넘기는데 이용한다.

 

 

 

중요한 점은 지금 내가 있는 페이지, 즉 1페이지는 포함되지 않는다.

 

 

 

 

 

 

 

 

 

3. 현재 페이지 찾기

 

위에서 찾은 page_bar 이용

 

 

현재 페이지(지금은 1)는 태그가 strong이다.

 

 

 

 

내가 있는 페이지는 '현재 페이지\n1'형태로 되어 있으니

 

1만 남기자

 

 

이제 문자열인 1만 남았다.

 

 

 

 

4. 함수 정의하기 (move_next)

 

브라우저를 이용해 페이지 바 찾기

 

페이지 바를 이용해 페이지들 찾기

 

페이지 바를 이용해 현재 페이지 찾기

 

 

 

페이지들을 for loop로 돌며

 

텍스트만(page_num) 추출해서

 

 

 

 

 

 

1) 맨앞, 이전, 맨뒤 이면 pass

 

 

 

 

 

 

 

2) 다음 이면 send_keys('\n')

 

(예를 들어 10페이지가 끝나면 다음을 눌러 11페이지로 넘어가기)

 

return False

 

 

 

 

 

 

 

3) page_num > 현재 페이지 라면 page_num 클릭(send_keys('\n'))

 

(다음 페이지로 넘어가기)

 

return False

 

 

 

 

 

 

4) 아무것도 해당하지 않는다면

 

마지막 페이지를 프린트하고

 

return True

 

 

 

 

 

5. while문으로 반복

 

is_done=False를 준 다음

 

whlile(not is_done) : 으로 반복

 

move_next가 True를 반환하면 (마지막 페이지라면)

 

whlie이 False로 바뀌면서 반복문 Stop.

 

 

 

 

영상으로 확인

 

 

 

 

반응형