seleniumbase를 사용법

한빈수윤·2025년 3월 28일

파이썬

목록 보기
3/3

네이버 가격비교 4500개 모델 자동 크롤링 (SeleniumBase 활용)

최근에 네이버 쇼핑에서 모델 번호(예: 5889W1A012E) 를 기준으로 가격비교 탭을 크롤링해야 할 일이 생겼다. 모델 개수는 무려 4,500개. 기존에 쓰던 Selenium으로는 자꾸 막히고 불안정해서, 이번엔 SeleniumBase를 써보기로 했다. 셀레니움베이스가 Undetected Chrome 드라이버도 지원해서 네이버처럼 보안 강한 사이트에 꽤 잘 먹힌다.


목표

네이버 쇼핑에 모델명 검색 → 상품 클릭 → 가격비교 탭 진입

가격비교 영역에 나오는 모든 판매처와 가격정보를 크롤링

4500개 모델을 루프 돌려 처리

결과는 CSV 또는 BigQuery로 저장

환경 세팅

pip install seleniumbase

🧪 샘플 코드 (1개 모델)

from seleniumbase import SB

model = "5889W1A012E"

with SB(uc=True, headless=True) as sb:
    sb.open(f"https://search.shopping.naver.com/search/all?query={model}")
    sb.click(f"a:contains('{model}')")
    sb.click('button:contains("가격비교")')
    sb.sleep(1)

    # '더보기' 누르기
    while sb.is_element_visible('button:contains("더보기")'):
        sb.click('button:contains("더보기")')
        sb.sleep(1)

    sb.scroll_to_bottom()
    sb.sleep(1)

    # 판매처 & 가격 추출
    sellers = sb.find_elements("a.mall_name")
    prices = sb.find_elements("span.price")

    for s, p in zip(sellers, prices):
        print(f"{model} | {s.text.strip()} | {p.text.strip()}")

결과 저장 (CSV)

import pandas as pd

df = pd.DataFrame(results, columns=["model", "mall", "price"])
df.to_csv("naver_prices.csv", index=False)

Anti-Bot 우회 팁

uc=True → Undetected Chrome 자동 적용

headless=True → 브라우저 없이 실행

sb.sleep() → 요청 간 살짝 쉬어주기 (네이버 민감함)

필요시 User-Agent도 커스텀 가능


정리

SeleniumBase로 하면 네이버도 안정적으로 크롤링 가능

일반 셀레니움보다 로딩 대기나 에러에 훨씬 강함

4500개 모델도 무리 없이 처리 가능

프록시나 CAPTCHA 대응은 추후 셋업 가능

계속 반복해서 막히는 크롤링이라면, SeleniumBase는 꽤 괜찮은 무기다.

profile
버거운 컴공 적응기>**<^*^##

0개의 댓글