코드로 하든, 코드 없이 하든 — Google 쇼핑 데이터 수집 방법

최종 업데이트: April 14, 2026

Google 쇼핑은 매달 을 처리합니다. 수많은 리테일러에서 모여든 가격 정보, 상품 트렌드, 판매자 데이터가 브라우저 안에 그대로 쌓여 있는 셈이죠.

그 데이터를 Google 쇼핑에서 꺼내 스프레드시트로 옮기는 일은 생각보다 쉽지 않습니다. 저도 노코드 브라우저 확장 프로그램부터 본격적인 Python 스크립트까지 여러 방법을 직접 테스트해 봤는데, 결과는 천차만별이었습니다. 어떤 방법은 “와, 진짜 쉽네” 수준이었지만, 어떤 방법은 “CAPTCHA 디버깅만 사흘째인데 그냥 포기하고 싶다”는 느낌이 들 정도였죠. 이 주제의 대부분 가이드는 Python 개발자를 전제로 하지만, 실제로 Google 쇼핑 데이터가 필요한 사람들 상당수는 이커머스 운영자, 가격 분석가, 마케터처럼 코드를 직접 짜지 않고도 숫자만 빠르게 확인하고 싶은 분들입니다. 그래서 이 가이드에서는 가장 쉬운 방법부터 기술 난도가 높은 방법 순으로 3가지 방식으로 정리했습니다. 자신의 실력과 시간 여유에 맞는 방법을 고를 수 있도록요.

Google 쇼핑 데이터란?

Google 쇼핑은 상품 검색 엔진입니다. 예를 들어 "무선 노이즈 캔슬링 헤드폰"을 검색하면 Google이 여러 온라인 스토어의 상품을 모아 보여줍니다. 상품명, 가격, 판매처, 평점, 이미지, 링크까지 한눈에 볼 수 있는, 인터넷 전체의 판매 정보를 실시간으로 보여주는 카탈로그라고 생각하면 됩니다.

왜 Google 쇼핑 데이터를 크롤링해야 할까?

상품 하나만 봐서는 알 수 있는 게 거의 없습니다. 하지만 수백 개를 스프레드시트로 정리하면 패턴이 보이기 시작합니다.

google-shopping-manual-vs-auto (1).png

제가 자주 본 대표적인 활용 사례는 다음과 같습니다.

활용 사례주요 사용자확인하려는 정보
경쟁 가격 분석이커머스 팀, 가격 분석가경쟁사 가격, 할인 패턴, 시간에 따른 가격 변동
상품 트렌드 탐색마케팅 팀, 제품 관리자신규 상품, 성장 중인 카테고리, 리뷰 증가 속도
광고 인텔리전스PPC 담당자, 성장팀스폰서드 상품, 어떤 판매자가 입찰 중인지, 광고 노출 빈도
판매자/리드 조사영업팀, B2B활동 중인 판매자, 새로 진입한 판매자
MAP 모니터링브랜드 매니저최소 광고 가격 정책을 위반하는 리테일러
재고 및 상품 구성 추적카테고리 매니저재고 여부, 상품 구성의 공백

가 이미 AI 기반 가격 책정 도구를 사용하고 있습니다. 경쟁 가격 인텔리전스에 투자한 기업들은 최대 29배의 수익을 보고했다고도 합니다. Amazon은 약 10분마다 가격을 업데이트합니다. 아직도 경쟁사 가격을 손으로 일일이 확인하고 있다면, 시간 대비 효율이 맞지 않습니다.

Thunderbit은 AI Web Scraper Chrome Extension으로, 비즈니스 사용자가 AI를 활용해 웹사이트 데이터를 손쉽게 추출할 수 있도록 도와줍니다. 특히 코드를 쓰지 않고도 구조화된 Google 쇼핑 데이터를 얻고 싶은 이커머스 운영자, 가격 분석가, 마케터에게 유용합니다.

Google 쇼핑에서 실제로 어떤 데이터를 추출할 수 있을까?

도구를 고르거나 코드를 한 줄 쓰기 전에, 어떤 필드를 얻을 수 있는지, 그리고 어떤 필드는 추가 작업이 필요한지 먼저 알아두면 좋습니다.

Google 쇼핑 검색 결과에서 가져올 수 있는 필드

Google 쇼핑에서 검색을 실행하면 결과 페이지의 각 상품 카드에 다음 정보가 포함됩니다.

필드유형예시비고
상품명텍스트"Sony WH-1000XM5 Wireless Headphones"항상 표시됨
가격숫자$278.00할인 가격과 정가가 함께 보일 수 있음
판매자/스토어텍스트"Best Buy"상품당 판매자가 여러 개일 수 있음
평점숫자4.75점 만점 기준, 항상 보이는 것은 아님
리뷰 수숫자12,453신제품에서는 없는 경우가 있음
상품 이미지 URLURLhttps://...최초 로드 시 base64 플레이스홀더가 반환될 수 있음
상품 링크URLhttps://...Google 상품 페이지 또는 판매처 페이지로 연결
배송 정보텍스트"Free shipping"항상 표시되지는 않음
스폰서드 태그불리언Yes/No유료 노출 여부를 뜻하며 광고 분석에 유용

상품 상세 페이지에서 가져올 수 있는 필드

Google 쇼핑에서 개별 상품의 상세 페이지로 들어가면 더 풍부한 정보를 볼 수 있습니다.

필드유형비고
전체 설명텍스트상품 페이지 방문이 필요함
모든 판매처 가격숫자(복수)여러 리테일러의 가격을 나란히 비교 가능
제품 사양텍스트카테고리별로 다름(크기, 무게 등)
개별 리뷰 본문텍스트구매자의 전체 리뷰 내용
장단점 요약텍스트Google이 자동 생성하는 경우가 있음

이 필드들을 얻으려면 검색 결과를 수집한 뒤 각 상품의 하위 페이지까지 방문해야 합니다. 을 지원하는 도구는 이 과정을 자동으로 처리합니다. 아래에서 워크플로를 자세히 보겠습니다.

Google 쇼핑 데이터를 크롤링하는 3가지 방법: 상황에 맞게 고르기

thunderbit-web-scraping-paths.png

가장 쉬운 방법부터 기술적인 방법까지, 3가지 방식을 정리했습니다. 자신의 상황에 맞는 행을 보고 바로 이동하세요.

방법난이도설정 시간봇 차단 대응추천 대상
노코드(Thunderbit Chrome Extension)초급약 2분자동 처리이커머스 운영, 마케팅, 일회성 리서치
Python + SERP API중급약 30분API가 처리반복 가능한 프로그램형 접근이 필요한 개발자
Python + Playwright(브라우저 자동화)고급약 1시간 이상직접 관리커스텀 파이프라인, 예외 상황 대응

방법 1: 코딩 없이 Google 쇼핑 데이터 크롤링하기(Thunderbit 사용)

  • 난이도: 초급
  • 소요 시간: 약 2~5분
  • 준비물: Chrome 브라우저, (무료 플랜 사용 가능), Google 쇼핑 검색어

"Google 쇼핑 데이터가 필요하다"에서 "스프레드시트가 완성됐다"까지 가장 빠르게 가는 방법입니다. 코드도 없고, API 키도 없고, 프록시 설정도 필요 없습니다. 저는 비기술직 동료들에게 이 과정을 수십 번 안내해 봤는데, 막히는 사람이 없었습니다.

1단계: Thunderbit 설치 후 Google 쇼핑 열기

Chrome Web Store에서 를 설치하고 무료 계정을 만드세요.

그다음 Google 쇼핑으로 이동합니다. shopping.google.com으로 직접 들어가거나 일반 Google 검색의 쇼핑 탭을 사용해도 됩니다. 관심 있는 상품이나 카테고리를 검색하세요. 예를 들어 "무선 노이즈 캔슬링 헤드폰" 같은 식입니다.

가격, 판매자, 평점이 보이는 상품 목록 그리드를 확인할 수 있을 것입니다.

2단계: "AI Suggest Fields"를 눌러 열 자동 감지하기

Thunderbit 확장 아이콘을 클릭해 사이드바를 연 다음, **"AI Suggest Fields"**를 누르세요. AI가 Google 쇼핑 페이지를 분석해 상품명, 가격, 판매자, 평점, 리뷰 수, 이미지 URL, 상품 링크 같은 컬럼을 제안합니다.

제안된 필드를 검토하세요. 컬럼 이름을 바꾸거나, 필요 없는 항목을 제거하거나, 사용자 정의 필드를 추가할 수도 있습니다. 예를 들어 "통화 기호 없이 숫자 가격만 추출"처럼 구체적으로 지정하고 싶다면 해당 컬럼에 Field AI Prompt를 추가하면 됩니다.

Thunderbit 패널에서 컬럼 구조 미리보기를 확인할 수 있습니다.

3단계: "Scrape"를 눌러 결과 확인하기

파란색 "Scrape" 버튼을 누르세요. Thunderbit이 보이는 모든 상품 목록을 구조화된 표로 가져옵니다.

페이지가 여러 개라면? Thunderbit이 자동으로 페이지네이션을 처리합니다. 레이아웃에 따라 페이지를 넘기거나 스크롤해서 더 많은 결과를 불러옵니다. 결과가 많다면 Cloud Scraping(더 빠르고, 한 번에 최대 50페이지 처리 가능, Thunderbit의 분산 인프라에서 실행)과 Browser Scraping(직접 사용하는 Chrome 세션을 활용, Google이 지역별 결과를 보여주거나 로그인 상태가 필요한 경우 유용) 중 하나를 선택할 수 있습니다.

제가 테스트했을 때 상품 목록 50개를 긁는 데 약 30초가 걸렸습니다. 같은 작업을 수동으로 했다면 각 목록을 열고 제목, 가격, 판매자, 평점을 복사하는 데 20분 이상 걸렸을 겁니다.

4단계: 서브페이지 크롤링으로 데이터 확장하기

초기 수집이 끝나면 Thunderbit 패널에서 **"Scrape Subpages"**를 클릭하세요. AI가 각 상품 상세 페이지를 방문해 전체 설명, 모든 판매처 가격, 사양, 리뷰 같은 추가 필드를 원본 표에 덧붙여 줍니다.

별도 설정은 필요 없습니다. AI가 각 상세 페이지의 구조를 알아서 파악하고 필요한 데이터를 가져옵니다. 저는 이 방법으로 40개 상품의 경쟁 가격 매트릭스(상품명 + 모든 판매처 가격 + 사양)를 5분도 안 돼서 완성했습니다.

5단계: Google Sheets, Excel, Airtable, Notion으로 내보내기

**"Export"**를 클릭하고 저장 위치를 선택하세요. , Excel, Airtable, Notion 모두 지원합니다. 전부 무료입니다. CSV와 JSON 다운로드도 가능합니다.

두 번 클릭해서 크롤링하고, 한 번 클릭해서 내보내기. 같은 작업을 Python으로 하려면? 대략 60줄짜리 코드에 프록시 설정, CAPTCHA 처리, 그리고 지속적인 유지보수까지 필요합니다.

방법 2: Python + SERP API로 Google 쇼핑 데이터 크롤링하기

  • 난이도: 중급
  • 소요 시간: 약 30분
  • 준비물: Python 3.10+, requestspandas 라이브러리, SERP API 키(ScraperAPI, SerpApi 등)

Google 쇼핑 데이터를 프로그램 방식으로 반복 수집해야 한다면, SERP API가 가장 안정적인 Python 기반 접근법입니다. 봇 차단 대응, JavaScript 렌더링, 프록시 회전은 모두 백엔드에서 처리됩니다. HTTP 요청을 보내면 구조화된 JSON이 돌아옵니다.

1단계: Python 환경 설정하기

Python 3.12(2025~2026년 기준 가장 안전한 운영 환경 선택지)를 설치하고 필요한 패키지를 추가하세요.

1pip install requests pandas

SERP API 제공업체에 가입합니다. 는 월 100회 무료 검색을 제공하고, 는 5,000개의 무료 크레딧을 제공합니다. 대시보드에서 API 키를 받아두세요.

2단계: API 요청 구성하기

다음은 ScraperAPI의 Google 쇼핑 엔드포인트를 사용하는 최소 예시입니다.

1import requests
2import pandas as pd
3API_KEY = "YOUR_API_KEY"
4query = "wireless noise cancelling headphones"
5resp = requests.get(
6    "https://api.scraperapi.com/structured/google/shopping",
7    params={"api_key": API_KEY, "query": query, "country_code": "us"}
8)
9data = resp.json()

API는 title, price, link, thumbnail, source(판매자), rating 같은 필드가 들어 있는 구조화된 JSON을 반환합니다.

3단계: JSON 응답을 파싱하고 필드 추출하기

1products = data.get("shopping_results", [])
2rows = []
3for p in products:
4    rows.append({
5        "title": p.get("title"),
6        "price": p.get("price"),
7        "seller": p.get("source"),
8        "rating": p.get("rating"),
9        "reviews": p.get("reviews"),
10        "link": p.get("link"),
11        "thumbnail": p.get("thumbnail"),
12    })
13df = pd.DataFrame(rows)

4단계: CSV 또는 JSON으로 내보내기

1df.to_csv("google_shopping_results.csv", index=False)

이 방식은 배치 처리에 적합합니다. 50개의 키워드를 반복문으로 돌려 한 번의 스크립트 실행으로 전체 데이터셋을 만들 수 있습니다. 다만 비용은 고려해야 합니다. SERP API는 쿼리당 비용을 부과하므로, 하루에 수천 건을 돌리면 비용이 빠르게 늘어납니다. 가격은 아래에서 더 자세히 설명합니다.

방법 3: Python + Playwright로 Google 쇼핑 데이터 크롤링하기(브라우저 자동화)

  • 난이도: 고급
  • 소요 시간: 약 1시간 이상(지속적인 유지보수 포함)
  • 준비물: Python 3.10+, Playwright, residential proxies, 인내심

이 방법은 “완전한 제어”를 원하는 경우에 해당합니다. 실제 브라우저를 띄워 Google 쇼핑으로 이동한 뒤 렌더링된 페이지에서 데이터를 추출합니다. 유연성은 가장 높지만, 동시에 가장 취약합니다. Google의 봇 차단 시스템은 매우 공격적이고, 페이지 구조도 1년에 여러 번 바뀝니다.

솔직히 말해, 이 방식으로 CAPTCHA와 IP 차단에 몇 주씩 매달리다 포기한 사용자도 여럿 봤습니다. 작동은 하지만, 계속 손봐야 한다는 점은 각오해야 합니다.

1단계: Playwright와 프록시 설정하기

1pip install playwright
2playwright install chromium

residential proxy가 필요합니다. 데이터센터 IP는 거의 즉시 차단됩니다. 한 포럼 사용자는 이렇게 말했습니다. "모든 AWS IP는 차단되거나 1~2개 결과 후 CAPTCHA를 맞게 됩니다." Bright Data, Oxylabs, Decodo 같은 서비스는 $1~5/GB 수준부터 residential proxy 풀을 제공합니다.

실제 사용자처럼 보이는 user-agent와 프록시를 설정하세요.

1from playwright.sync_api import sync_playwright
2with sync_playwright() as p:
3    browser = p.chromium.launch(
4        headless=True,
5        proxy={"server": "http://your-proxy:port", "username": "user", "password": "pass"}
6    )
7    context = browser.new_context(
8        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ..."
9    )
10    page = context.new_page()

2단계: Google 쇼핑으로 이동하고 봇 차단에 대응하기

Google 쇼핑 URL을 만들어 이동합니다.

1query = "wireless noise cancelling headphones"
2url = f"https://www.google.com/search?udm=28&q={query}&gl=us&hl=en"
3page.goto(url, wait_until="networkidle")

EU 쿠키 동의 팝업이 뜨면 처리합니다.

1try:
2    page.click("button#L2AGLb", timeout=3000)
3except:
4    pass

페이지를 넘길 때마다 2~5초 정도 랜덤으로 쉬는 식의 사람 같은 지연을 넣으세요. Google의 탐지 시스템은 빠르고 일정한 요청 패턴을 잘 잡아냅니다.

3단계: 스크롤, 페이지 이동, 상품 데이터 추출하기

Google 쇼핑은 결과를 동적으로 불러옵니다. 스크롤해서 지연 로딩을 트리거한 뒤 상품 카드를 추출합니다.

1import time, random
2# 모든 결과를 불러오기 위해 스크롤
3for _ in range(3):
4    page.evaluate("window.scrollBy(0, 1000)")
5    time.sleep(random.uniform(1.5, 3.0))
6# 상품 카드 추출
7cards = page.query_selector_all("[jsname='ZvZkAe']")
8results = []
9for card in cards:
10    title = card.query_selector("h3")
11    price = card.query_selector("span.a8Pemb")
12    # ... 다른 필드 추출
13    results.append({
14        "title": title.inner_text() if title else None,
15        "price": price.inner_text() if price else None,
16    })

중요한 점은, 위 CSS 셀렉터는 대략적인 예시일 뿐이고 곧 바뀔 수 있다는 것입니다. Google은 class 이름을 자주 바꿉니다. 2024~2026년 사이에만 셀렉터 세트가 세 번이나 문서화되었습니다. class 이름보다 jsname, data-cid, <h3> 태그, img[alt] 같은 더 안정적인 속성에 의존하는 편이 좋습니다.

4단계: CSV 또는 JSON으로 저장하기

1import json
2from datetime import datetime
3filename = f"shopping_{datetime.now().strftime('%Y%m%d_%H%M')}.json"
4with open(filename, "w") as f:
5    json.dump(results, f, indent=2)

이 스크립트는 정기적으로 유지보수해야 합니다. Google이 페이지 구조를 바꾸면(그런 일은 1년에 여러 번 발생합니다) 셀렉터가 깨지고 다시 디버깅을 해야 합니다.

가장 큰 골칫거리: CAPTCHA와 봇 차단

여러 포럼에서 반복되는 이야기가 있습니다. "몇 주를 쏟았는데 Google의 봇 방지에 졌다." CAPTCHA와 IP 차단은 DIY Google 쇼핑 스크래퍼를 포기하게 만드는 가장 큰 이유입니다.

Google이 스크래퍼를 막는 방식과 대응법

| 봇 차단 유형 | Google의 대응 | 우회 방법 | |---|---|---|---| | IP 지문 인식 | 몇 번 요청 후 데이터센터 IP 차단 | Residential proxy 또는 브라우저 기반 크롤링 | | CAPTCHA | 빠르거나 자동화된 요청 패턴에서 발생 | 요청 간 10~20초 간격, 사람 같은 딜레이, CAPTCHA 해결 서비스 | | JavaScript 렌더링 | 쇼핑 결과가 JS로 동적 로드됨 | 헤드리스 브라우저(Playwright) 또는 JS 렌더링 API | | user-agent 탐지 | 흔한 봇 user-agent 차단 | 실제 브라우저에 가까운 최신 user-agent 문자열 로테이션 | | TLS 지문 인식 | 브라우저가 아닌 TLS 시그니처 탐지 | 브라우저 모방이 가능한 curl_cffi 또는 실제 브라우저 사용 | | AWS/클라우드 IP 차단 | 알려진 클라우드 사업자 IP 범위 차단 | 데이터센터 IP를 아예 사용하지 않기 |

2025년 1월, Google은 SERP 및 쇼핑 결과에 JavaScript 실행을 필수로 바꾸면서 — SemRush와 SimilarWeb이 사용하던 파이프라인까지 영향을 받았습니다. 이어서 2025년 9월에는 기존 상품 상세 페이지 URL을 폐기하고, 비동기 AJAX로 로드되는 새로운 "Immersive Product" 화면으로 리디렉션했습니다. 2025년 후반 이전에 작성된 튜토리얼은 대부분 더 이상 유효하지 않습니다.

각 방법은 이 문제를 어떻게 처리할까?

SERP API는 프록시, 렌더링, CAPTCHA 해결까지 모두 백그라운드에서 처리합니다. 사용자는 신경 쓸 필요가 없습니다.

Thunderbit Cloud Scraping은 미국, 유럽, 아시아 전역에 분산된 클라우드 인프라를 사용해 JavaScript 렌더링과 봇 차단을 자동으로 처리합니다. Browser Scraping 모드는 본인의 인증된 Chrome 세션을 사용하므로, 일반 사용자가 브라우징하는 것처럼 보여 탐지를 자연스럽게 피할 수 있습니다.

직접 만드는 Playwright 방식은 프록시 관리, 지연 시간 조정, CAPTCHA 해결, 셀렉터 유지보수, 오류 모니터링까지 전부 사용자가 떠안아야 합니다.

Google 쇼핑 데이터 크롤링의 실제 비용: 솔직한 비교

"2만 요청 정도에 50달러라면... 취미 프로젝트에는 좀 비싼데요." 이런 불만은 포럼에서 정말 자주 보입니다. 하지만 대부분 가장 큰 비용을 빼놓고 이야기합니다.

비용 비교표

접근 방식초기 비용쿼리당 비용(예상)유지보수 부담숨은 비용
직접 Python 구현(프록시 없음)무료$0높음(깨짐, CAPTCHA)디버깅에 쓰는 시간
직접 Python + residential proxies코드 무료약 $1~5/GB중간~높음프록시 제공업체 비용
SERP API(SerpApi, ScraperAPI)무료 플랜 제한약 $0.50~5.00/1K 쿼리낮음대량 사용 시 빠르게 증가
Thunderbit Chrome Extension무료 플랜(6페이지)크레딧 기반, 약 1 크레딧/행매우 낮음대량 사용 시 유료 플랜 필요
Thunderbit Open API(Extract)크레딧 기반페이지당 약 20 크레딧낮음추출 건수만큼 비용 발생

모두가 놓치는 숨은 비용: 당신의 시간

디버깅에 40시간을 쓰는 $0짜리 DIY 솔루션은 사실 무료가 아닙니다. 시간당 5만 원만 잡아도 인건비가 200만 원입니다. 그런데 다음 달에 Google이 DOM을 바꾸면 다시 깨질 수도 있습니다.

google-shopping-cost-vs (2).png

McKinsey의 Technology Outlook에 따르면 합니다. 그 이하에서는 사내 구축이 "ROI 없이 예산만 소모"하는 경우가 많습니다. 주당 수백~수천 건 수준의 조회를 처리하는 대부분의 이커머스 팀에게는 노코드 도구나 SERP API가 자체 개발보다 훨씬 경제적입니다.

자동 Google 쇼핑 가격 모니터링 설정 방법

대부분의 가이드는 크롤링을 일회성 작업으로 다룹니다. 하지만 이커머스 팀의 진짜 활용 사례는 지속적인 자동 모니터링입니다. 오늘 가격만 필요한 게 아니라 어제, 지난주, 그리고 내일의 가격까지 필요하니까요.

Thunderbit로 정기 크롤링 설정하기

Thunderbit의 Scheduled Scraper는 "매일 오전 9시" 또는 "매주 월요일과 목요일 정오"처럼 자연어로 주기를 적어두면 AI가 이를 반복 일정으로 바꿔 줍니다. Google 쇼핑 URL을 넣고 **"Schedule"**만 누르면 끝입니다.

각 실행 결과는 Google Sheets, Airtable, Notion으로 자동 내보내기 됩니다. 최종적으로는 경쟁사 가격이 매일 자동으로 채워지는 스프레드시트가 만들어지고, 피벗 테이블이나 알림 설정에 바로 사용할 수 있습니다.

크론 작업도, 서버 관리도, Lambda 함수 고생도 없습니다. (Selenium을 AWS Lambda에서 돌리느라 며칠을 허비했다는 개발자 포럼 글을 여러 번 봤는데, Thunderbit의 스케줄러는 그런 과정을 통째로 건너뜁니다.)

를 더 자세히 알고 싶다면 별도의 심층 가이드를 참고하세요.

Python으로 스케줄링하기(개발자용)

SERP API 방식을 사용한다면 Linux/Mac의 cron, Windows 작업 스케줄러, AWS Lambda나 Google Cloud Functions 같은 클라우드 스케줄러로 실행을 예약할 수 있습니다. APScheduler 같은 Python 라이브러리도 사용할 수 있습니다.

하지만 그만큼 스크립트 상태 모니터링, 실패 처리, 정기적인 프록시 교체, Google 페이지 변경 시 셀렉터 업데이트까지 모두 본인이 책임져야 합니다. 대부분의 팀에게는 정기 실행용 Python 스크래퍼를 유지보수하는 엔지니어링 시간이 전용 도구 비용보다 더 큽니다.

Google 쇼핑 데이터 크롤링을 위한 팁과 모범 사례

어떤 방법을 쓰든, 아래 내용은 많은 수고를 덜어줍니다.

요청 빈도는 반드시 조절하세요

짧은 시간에 수백 번씩 Google을 두드리면 차단될 수 있고, IP가 한동안 경고 상태로 남을 수도 있습니다. 직접 구현하는 방식이라면 요청 사이를 10~20초 정도 띄우고 랜덤 지연을 섞으세요. 도구나 API는 이런 부분을 알아서 처리합니다.

데이터 양에 맞는 방법을 고르세요

간단한 판단 기준은 다음과 같습니다.

  • 주당 10건 미만 → Thunderbit 무료 플랜 또는 SerpApi 무료 플랜
  • 주당 10~1,000건 → SERP API 유료 플랜 또는
  • 주당 1,000건 이상 → SERP API 엔터프라이즈 플랜 또는 Thunderbit Open API

데이터를 정리하고 검증하세요

가격에는 통화 기호, 로케일별 표기(1.299,00 € vs $1,299.00), 그리고 가끔 이상한 문자들이 섞여 있습니다. Thunderbit의 Field AI Prompt로 추출 시점에 정규화할 수도 있고, 이후 pandas로 정리할 수도 있습니다.

1df["price_num"] = df["price"].str.replace(r"[^\d.]", "", regex=True).astype(float)

일반 노출과 스폰서드 목록 사이의 중복도 확인하세요. 겹치는 경우가 많습니다. (title, price, seller) 조합으로 중복 제거하면 됩니다.

법적 이슈도 알아두세요

공개된 상품 데이터를 수집하는 행위는 일반적으로 합법으로 간주되지만, 법적 환경은 빠르게 바뀌고 있습니다. 특히 최근 중요한 변화는 입니다. DMCA § 1201을 근거로 Google의 "SearchGuard" 봇 차단 시스템을 우회했다는 주장입니다. 이는 hiQ v. LinkedIn, Van Buren v. United States 같은 이전 판례와는 다른 새로운 집행 방향입니다.

실무 가이드라인은 다음과 같습니다.

  • 공개된 데이터만 수집하세요. 제한된 콘텐츠에 접근하려고 로그인하지 마세요.
  • 개인 정보(리뷰 작성자 이름, 계정 정보 등)는 추출하지 마세요.
  • Google의 서비스 약관은 자동화된 접근을 금지한다는 점을 인지하세요. SERP API나 브라우저 확장 프로그램을 쓰면 법적 회색지대가 줄어들지만 완전히 사라지지는 않습니다.
  • EU에서 운영한다면 GDPR도 고려해야 합니다. 다만 상품 목록은 대체로 개인 식별 정보가 아닌 상업 데이터입니다.
  • 수집한 데이터를 기반으로 상용 제품을 만들 계획이라면 법률 자문을 받는 것이 좋습니다.

에 대해서는 별도 글에서 더 자세히 다뤘습니다.

Google 쇼핑 데이터 크롤링에 어떤 방법을 써야 할까?

같은 상품 카테고리에서 세 가지 방법을 모두 돌려본 뒤, 저는 이렇게 정리했습니다.

기술 지식이 많지 않고 빠르게 데이터가 필요한 경우 — Thunderbit을 쓰세요. Google 쇼핑을 열고, 두 번 클릭하고, 내보내기만 하면 됩니다. 5분도 안 돼 깔끔한 스프레드시트를 얻을 수 있습니다. 으로 부담 없이 시험해 볼 수 있고, 서브페이지 크롤링 기능 덕분에 대부분의 Python 스크립트보다 더 풍부한 데이터를 얻을 수 있습니다.

반복 가능하고 프로그램 방식의 접근이 필요한 개발자라면 — SERP API를 사용하세요. 쿼리당 비용이 들더라도 안정성이 좋고, 모든 봇 차단 문제를 건너뛸 수 있습니다. 문서화는 SerpApi가 가장 좋고, 무료 플랜은 ScraperAPI가 가장 넉넉합니다.

최대한 제어하면서 커스텀 파이프라인을 만들어야 한다면 — Playwright가 맞습니다. 다만 프록시 관리, 셀렉터 유지보수, CAPTCHA 처리에 충분한 시간을 써야 한다는 점을 감안하세요. 2025~2026년 기준 최소한의 우회 스택은 Chrome 모방이 가능한 curl_cffi + residential proxies + 10~20초 간격입니다. 단순 requests 스크립트에 user-agent만 돌리는 방식은 사실상 통하지 않습니다.

가장 좋은 방법은 정확한 데이터를 얻으면서도 한 주를 통째로 잡아먹지 않는 방법입니다. 대부분의 사람에게는 60줄짜리 Python 스크립트보다 두 번 클릭하는 방식이 더 낫습니다.

대량 처리가 필요하다면 를 확인해 보시고, 실제 작업 흐름이 궁금하다면 의 튜토리얼을 참고하세요.

Google 쇼핑 크롤링용 Thunderbit 체험하기

자주 묻는 질문

Google 쇼핑 데이터를 크롤링하는 건 합법인가요?

공개된 상품 데이터를 수집하는 행위는 일반적으로 hiQ v. LinkedIn, Van Buren v. United States 같은 판례상 합법으로 여겨집니다. 다만 Google의 서비스 약관은 자동화된 접근을 금지하며, 2025년 12월 Google이 SerpApi를 상대로 제기한 소송은 DMCA § 1201 우회 금지 논리를 새롭게 제시했습니다. 신뢰할 수 있는 도구와 API를 사용하면 위험을 줄일 수 있습니다. 상업적 활용이라면 법률 자문을 권합니다.

차단되지 않고 Google 쇼핑을 크롤링할 수 있나요?

가능하지만 방법이 중요합니다. SERP API는 봇 차단 대응을 자동으로 처리합니다. Thunderbit의 Cloud Scraping은 분산 인프라로 차단을 피하고, Browser Scraping은 본인의 Chrome 세션을 사용하므로 일반 브라우징처럼 보입니다. DIY Python 스크립트는 residential proxy, 사람 같은 딜레이, TLS 지문 관리가 필요하며, 그럼에도 차단이 자주 발생합니다.

Google 쇼핑 데이터를 가장 쉽게 크롤링하는 방법은 무엇인가요?

Thunderbit Chrome Extension입니다. Google 쇼핑으로 이동해 "AI Suggest Fields"를 누르고, "Scrape"를 클릭한 뒤 Google Sheets나 Excel로 내보내면 됩니다. 코딩도, API 키도, 프록시 설정도 필요 없습니다. 전체 과정은 약 2분이면 끝납니다.

가격 모니터링을 위해 Google 쇼핑을 얼마나 자주 크롤링할 수 있나요?

Thunderbit의 Scheduled Scraper를 사용하면 자연어 설명만으로 매일, 매주, 또는 원하는 간격으로 모니터링을 설정할 수 있습니다. SERP API는 플랜의 크레딧 한도에 따라 빈도가 정해지며, 대부분의 제공업체는 수백 개 SKU의 일일 모니터링에는 충분한 수준입니다. DIY 스크립트는 인프라가 허용하는 만큼 자주 실행할 수 있지만, 빈도가 높을수록 봇 차단 문제도 커집니다.

Google 쇼핑 데이터를 Google Sheets나 Excel로 내보낼 수 있나요?

네. Thunderbit은 Google Sheets, Excel, Airtable, Notion으로 바로 무료 내보내기를 지원합니다. Python 스크립트는 CSV 또는 JSON으로 내보낸 뒤 원하는 스프레드시트 도구로 가져올 수 있습니다. 지속적인 모니터링이 필요하다면 Thunderbit의 Google Sheets 자동 내보내기로 실시간 업데이트되는 데이터셋을 만들 수 있습니다.

Shuai Guan
Shuai Guan
Co-founder/CEO @ Thunderbit. Passionate about cross section of AI and Automation. He's a big advocate of automation and loves making it more accessible to everyone. Beyond tech, he channels his creativity through a passion for photography, capturing stories one picture at a time.
Topics
파이썬으로 Google 쇼핑 크롤링Python Google 쇼핑 스크래퍼파이썬 Google 쇼핑 데이터 추출파이썬으로 Google 쇼핑에서 상품 가격 크롤링
목차

Thunderbit 사용해보기

클릭 2번으로 리드와 기타 데이터를 수집하세요. AI 기반입니다.

Thunderbit 받기 무료예요
AI로 데이터 추출하기
데이터를 Google Sheets, Airtable, Notion으로 손쉽게 옮겨보세요
PRODUCT HUNT#1 Product of the Week