인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

원트님의 프로필 이미지

작성한 질문수

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

데이터 추출하기 (복잡한 HTML 구조)

네이버 쇼핑 여러페이지 크롤링 방법

작성

·

151

·

수정됨

0

네이버 지식인 여러페이지 정적 크롤링은 강의에 있어서 따라하니 잘 되는데 동적 페이지 크롤링인 네이버 쇼핑은 for i in 코드를 넣으니 넘어가지지가 않네요 ㅜㅜ 동적 페이지 크롤링인 네이버 쇼핑 여러페이지 넘어갈때는 다른 코드를 작성해야하는걸까요?

문제다.PNG.webp포아이인.PNG.webp

 

네이버 지식인 여러페이지 크롤링 할 때처럼 하니 페이지가 안넘어가지네요...

답변 2

0

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

안녕하세요 원트님

 

네이버 가격비교 (구 네이버쇼핑) URL 을 잘보시면

2페이지 넘어갔을때 pagingIndex 파라미터가 2로 바뀌는 것을 알 수 있습니다.

 

이걸 확인해 보시고, 맞춰서 셀레니움의 GET 요청을 날려 보세요!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

네이버 쇼핑과 같은 동적 웹 페이지를 크롤링할 때는 정적인 네이버 지식인과는 다른 접근이 필요합니다. 동적 페이지에서는 자바스크립트를 통해 페이지가 로드되기 때문에, 일반적인 requestsBeautifulSoup 만으로는 페이지 전환이나 추가 로딩이 이루어지지 않습니다.

여기서는 Selenium을 사용하여 브라우저를 자동으로 제어하는 방법을 주로 사용합니다. 이를 통해 자바스크립트를 실행하고 동적으로 콘텐츠를 로드할 수 있으며 페이지 전환을 처리할 수 있습니다.

Selenium을 통한 페이지 넘기기

  1. Selenium 설치:

    pip install selenium
    
  2. 웹 드라이버 설정: 크롬 드라이버 설치 후 경로 설정이 필요합니다. webdriver-manager 라이브러리를 사용하면, 자동으로 드라이버 설치 및 설정을 할 수 있습니다.

  3. 페이지 넘기기:
    Selenium을 사용해 네이버 쇼핑 페이지를 불러온 후, ‘다음 페이지’ 버튼을 찾아 클릭하거나, 페이지 번호를 직접 누르는 코드를 작성합니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# setup
driver = webdriver.Chrome()

# 네이버 쇼핑 페이지 로드
driver.get('https://search.shopping.naver.com/search/all?query=YOUR_KEYWORD&cat_id=&frm=NVSHATC')

# 페이지 스크롤
for page in range(1, 5):  # 원하는 페이지 수만큼 설정합니다.
    try:
        # 페이지 번호를 선택하여 클릭하는 코드 (이 부분은 사이트 구조에 맞게 변경 필요)
        page_selector = f"여기에_페이지_번호_CSS_선택자_넣기 nth-child({page})"
        driver.find_element(By.CSS_SELECTOR, page_selector).click()
        
        # 페이지 로딩을 기다리기 위해 잠시 대기
        time.sleep(2) 
        
        # 데이터를 가져오기 위한 코드 작성
        
    except Exception as e:
        print(f"Error on page {page}: {e}")
        break

driver.quit()

위 코드는 네이버 쇼핑 목록에서 페이지 전환을 어떻게 처리할 수 있는지에 대한 기본적인 예제입니다. 동적인 콘텐츠를 수집할 때는 페이지가 다 로드되는 시간을 보장하기 위해 적절한 대기 시간(time.sleep)을 추가하는 것이 중요합니다.

추가적으로, 네이버의 반크롤링 정책에 준수하고, 크롤링하는 주기에 주의를 기울이는 걸 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

원트님의 프로필 이미지

작성한 질문수

질문하기