Google Shopping은 매달 을 처리합니다. 수천 개 리테일러에서 모인 가격 데이터, 상품 트렌드, 판매자 정보가 사실상 브라우저 안에 그대로 쌓여 있는 셈이죠.
그런 데이터를 Google Shopping에서 스프레드시트로 옮기는 일은 생각보다 훨씬 복잡합니다. 저도 여러 방법을 직접 써 봤는데요. 노코드 브라우저 확장부터 Python 스크립트까지 돌려 보니 결과가 정말 제각각이었습니다. 어떤 방식은 “와, 이거 너무 쉬운데?” 싶었고, 어떤 방식은 “CAPTCHA 디버깅만 사흘째인데 그냥 포기하고 싶다”는 수준이었죠. 이 주제의 대부분 가이드는 Python 개발자를 기준으로 쓰여 있지만, 제가 보기엔 Google Shopping 데이터가 필요한 사람들 대부분은 이커머스 운영자, 가격 분석가, 마케터처럼 코딩 없이 숫자를 빠르게 가져오고 싶은 분들입니다. 그래서 이 글에서는 난이도 순으로 3가지 방법을 소개합니다. 자신의 기술 수준과 시간 여건에 맞는 방식을 골라 보세요.
Google Shopping 데이터란?
Google Shopping은 상품 검색 엔진입니다. 예를 들어 "무선 노이즈 캔슬링 헤드폰"을 검색하면, Google이 여러 온라인 스토어의 상품 목록을 가져와 보여줍니다. 상품명, 가격, 판매자, 평점, 이미지, 링크까지 — 인터넷 전반의 판매 상품을 실시간으로 모아 둔 카탈로그라고 보면 됩니다.
왜 Google Shopping 데이터를 스크래핑해야 할까?
상품 페이지 하나만 봐서는 얻을 수 있는 정보가 거의 없습니다. 그런데 수백 개의 상품을 스프레드시트로 정리하면 패턴이 보이기 시작합니다.

제가 가장 자주 본 활용 사례는 다음과 같습니다.
| 활용 사례 | 주요 사용자 | 확인하려는 정보 |
|---|---|---|
| 경쟁 가격 분석 | 이커머스 팀, 가격 분석가 | 경쟁사 가격, 할인 패턴, 시간에 따른 가격 변동 |
| 상품 트렌드 탐색 | 마케팅 팀, 제품 매니저 | 신규 상품, 성장 중인 카테고리, 리뷰 증가 속도 |
| 광고 인텔리전스 | PPC 담당자, 성장팀 | 스폰서 상품, 어떤 판매자가 입찰하는지, 광고 노출 빈도 |
| 판매자/리드 리서치 | 영업팀, B2B | 활동 중인 판매자, 새로 카테고리에 진입한 셀러 |
| MAP 모니터링 | 브랜드 매니저 | 최소 광고 가격 정책을 위반하는 리테일러 |
| 재고 및 상품 구성 추적 | 카테고리 매니저 | 재고 여부, 상품군의 공백 |
가 이미 AI 기반 가격 도구를 사용하고 있습니다. 경쟁 가격 인텔리전스에 투자한 기업들은 최대 29배의 수익률을 보고했다고 합니다. Amazon은 대략 10분마다 가격을 업데이트합니다. 아직도 경쟁사 가격을 수동으로 확인하고 있다면, 계산상 전혀 유리하지 않습니다.
Thunderbit은 AI 웹 스크래퍼 Chrome 확장 프로그램으로, 비즈니스 사용자들이 AI를 활용해 웹사이트에서 데이터를 추출할 수 있도록 도와줍니다. 특히 코딩 없이 구조화된 Google Shopping 데이터를 얻고 싶은 이커머스 운영자, 가격 분석가, 마케터에게 잘 맞습니다.
Google Shopping에서 실제로 어떤 데이터를 뽑을 수 있을까?
도구를 고르거나 코드를 한 줄 쓰기 전에, 어떤 필드를 가져올 수 있는지 — 그리고 어떤 항목은 추가 작업이 필요한지 — 정확히 알아두면 좋습니다.
Google Shopping 검색 결과에서 가져올 수 있는 필드
Google Shopping에서 검색을 실행하면 결과 페이지의 각 상품 카드에 다음 정보가 포함됩니다.
| 필드 | 유형 | 예시 | 비고 |
|---|---|---|---|
| 상품명 | 텍스트 | "Sony WH-1000XM5 Wireless Headphones" | 항상 표시됨 |
| 가격 | 숫자 | $278.00 | 세일 가격과 정가가 함께 표시될 수 있음 |
| 판매자/스토어 | 텍스트 | "Best Buy" | 상품당 여러 판매자가 있을 수 있음 |
| 평점 | 숫자 | 4.7 | 별 5개 만점 기준, 항상 보이진 않음 |
| 리뷰 수 | 숫자 | 12,453 | 신상품에서는 없는 경우가 있음 |
| 상품 이미지 URL | URL | https://... | 초기 로드 시 base64 자리표시자로 반환될 수 있음 |
| 상품 링크 | URL | https://... | Google 상품 페이지 또는 직접 스토어로 연결됨 |
| 배송 정보 | 텍스트 | "Free shipping" | 항상 존재하는 것은 아님 |
| 스폰서 표시 | 불리언 | Yes/No | 유료 노출 여부를 의미하며 광고 분석에 유용 |
상품 상세 페이지에서 가져올 수 있는 필드(서브페이지 데이터)
Google Shopping의 개별 상품 상세 페이지로 들어가면 더 풍부한 데이터를 얻을 수 있습니다.
| 필드 | 유형 | 비고 |
|---|---|---|
| 전체 설명 | 텍스트 | 상품 페이지 방문 필요 |
| 전체 판매자 가격 | 숫자(복수) | 여러 리테일러의 가격을 나란히 비교 가능 |
| 사양 | 텍스트 | 상품 카테고리에 따라 달라짐(크기, 무게 등) |
| 개별 리뷰 텍스트 | 텍스트 | 구매자 리뷰 전문 |
| 장단점 요약 | 텍스트 | Google이 자동 생성하는 경우가 있음 |
이 필드들을 가져오려면 검색 결과를 스크래핑한 뒤 각 상품의 서브페이지까지 방문해야 합니다. 을 지원하는 도구는 이 과정을 자동으로 처리합니다. 아래에서 워크플로를 하나씩 보여드리겠습니다.
Google Shopping 데이터를 스크래핑하는 3가지 방법

가장 쉬운 방법부터 기술적인 방법까지 3가지를 정리했습니다. 자신의 상황에 맞는 행을 골라 바로 읽어 보세요.
| 방법 | 난이도 | 설정 시간 | 안티봇 대응 | 추천 대상 |
|---|---|---|---|---|
| 노코드 (Thunderbit Chrome 확장 프로그램) | 초급 | 약 2분 | 자동 처리 | 이커머스 운영, 마케팅, 일회성 리서치 |
| Python + SERP API | 중급 | 약 30분 | API가 처리 | 반복 가능한 프로그래밍 접근이 필요한 개발자 |
| Python + Playwright(브라우저 자동화) | 고급 | 약 1시간 이상 | 직접 관리 | 맞춤형 파이프라인, 예외 상황 대응 |
방법 1: 코딩 없이 Google Shopping 데이터 스크래핑하기(Thunderbit 사용)
- 난이도: 초급
- 소요 시간: 약 2~5분
- 준비물: Chrome 브라우저, (무료 플랜 가능), Google Shopping 검색어
"Google Shopping 데이터가 필요하다"에서 "스프레드시트가 완성됐다"까지 가장 빠른 경로입니다. 코딩도, API 키도, 프록시 설정도 필요 없습니다. 저는 비기술 직군 동료들에게 이 과정을 수십 번 안내했는데, 막힌 사람이 단 한 명도 없었습니다.
1단계: Thunderbit 설치 후 Google Shopping 열기
Chrome Web Store에서 를 설치하고 무료 계정을 만드세요.
그다음 Google Shopping으로 이동합니다. shopping.google.com에 직접 들어가도 되고, 일반 Google 검색의 Shopping 탭을 사용해도 됩니다. 관심 있는 상품이나 카테고리를 검색하세요. 예를 들면 "wireless noise-cancelling headphones"처럼요.
가격, 판매자, 평점이 표시된 상품 목록 그리드를 볼 수 있어야 합니다.
2단계: "AI Suggest Fields"를 눌러 열 자동 감지하기
Thunderbit 확장 아이콘을 눌러 사이드바를 연 다음 **"AI Suggest Fields"**를 클릭합니다. AI가 Google Shopping 페이지를 분석해 상품명, 가격, 판매자, 평점, 리뷰 수, 이미지 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 Shopping 데이터 스크래핑하기
- 난이도: 중급
- 소요 시간: 약 30분
- 준비물: Python 3.10 이상,
requests와pandas라이브러리, SERP API 키(ScraperAPI, SerpApi 등)
Google Shopping 데이터에 대해 프로그래밍 방식으로 반복 접근해야 한다면, 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 Shopping 엔드포인트를 사용하는 최소 예시입니다.
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 Shopping 데이터 스크래핑하기(브라우저 자동화)
- 난이도: 고급
- 소요 시간: 약 1시간 이상(지속적인 유지보수 포함)
- 준비물: Python 3.10 이상, Playwright, residential proxy, 인내심
이 방식은 말 그대로 "완전한 제어"를 추구합니다. 실제 브라우저를 띄워 Google Shopping에 접속하고 렌더링된 페이지에서 데이터를 추출합니다. 가장 유연하지만 그만큼 취약합니다. Google의 안티봇 시스템은 강력하고, 페이지 구조도 1년에 여러 번 바뀌기 때문입니다.
솔직히 말해, 이 방법으로 CAPTCHA와 IP 차단에 몇 주씩 매달리다가 포기했다는 사용자 이야기를 많이 들었습니다. 작동은 하지만 유지보수는 각오해야 합니다.
1단계: Playwright와 프록시 설정하기
1pip install playwright
2playwright install chromium
residential proxy가 필요합니다. 데이터센터 IP는 거의 즉시 차단됩니다. 한 포럼 사용자는 이렇게 말했죠. "AWS IP는 1~2개 결과만 보고 나면 전부 차단되거나 CAPTCHA를 맞는다." Bright Data, Oxylabs, Decodo 같은 서비스는 GB당 약 1~5달러 수준부터 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 Shopping으로 이동하고 안티봇 대응하기
Google Shopping 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 Shopping은 결과를 동적으로 불러옵니다. 스크롤로 lazy loading을 유도한 뒤 상품 카드를 추출합니다.
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은 클래스 이름을 자주 교체합니다. 2024~2026년 사이에만 셀렉터 세트가 세 번이나 달라졌다는 문서도 있습니다. 클래스명보다는 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 Shopping 스크래퍼를 포기하게 만드는 1순위 이유입니다.
Google이 스크래퍼를 막는 방식과 대응법
| 안티봇 문제 | Google의 대응 방식 | 우회 방법 |
|---|---|---|---|
| IP 핑거프린팅 | 몇 번 요청 후 데이터센터 IP 차단 | residential proxy 또는 브라우저 기반 스크래핑 |
| CAPTCHA | 빠르거나 자동화된 요청 패턴에서 발생 | 속도 제한(요청 간 10~20초), 사람 같은 지연, CAPTCHA 해결 서비스 |
| JavaScript 렌더링 | Shopping 결과를 JS로 동적 로딩 | 헤드리스 브라우저(Playwright) 또는 JS 렌더링 API |
| User-Agent 탐지 | 일반적인 봇 UA 차단 | 현실적이고 최신 UA 문자열 로테이션 |
| TLS 핑거프린팅 | 브라우저가 아닌 TLS 서명 감지 | curl_cffi와 브라우저 위장 또는 실제 브라우저 사용 |
| AWS/클라우드 IP 차단 | 알려진 클라우드 제공업체 IP 대역 차단 | 데이터센터 IP는 아예 피하기 |
2025년 1월, Google은 SERP 및 Shopping 결과에 JavaScript 실행을 필수로 바꿔 . SemRush와 SimilarWeb이 사용하던 파이프라인도 영향을 받았습니다. 이어 2025년 9월에는 기존 상품 상세 페이지 URL을 폐기하고, 비동기 AJAX로 로드되는 새로운 "Immersive Product" 화면으로 리디렉션했습니다. 따라서 2025년 후반 이전에 작성된 튜토리얼은 대부분 더 이상 유효하지 않습니다.
각 방법이 이런 문제를 어떻게 처리하는가
SERP API는 프록시, 렌더링, CAPTCHA 해결을 모두 백그라운드에서 처리합니다. 사용자는 신경 쓸 일이 없습니다.
Thunderbit Cloud Scraping은 미국, 유럽, 아시아에 분산된 클라우드 인프라를 사용해 JS 렌더링과 안티봇 대응을 자동으로 처리합니다. Browser Scraping 모드는 로그인된 본인 Chrome 세션을 사용하므로, 일반 사용자가 브라우징하는 것처럼 보여 탐지를 거의 피할 수 있습니다.
직접 만드는 Playwright 방식은 프록시 관리, 지연 시간 조정, CAPTCHA 처리, 셀렉터 유지보수, 깨짐 감시까지 전부 사용자가 책임져야 합니다.
Google Shopping 데이터를 스크래핑하는 실제 비용: 솔직한 비교
"2만 요청 정도에 50달러라면… 취미 프로젝트 치고는 좀 비싸네요." 이런 불만은 포럼에서 정말 자주 보입니다. 그런데 보통 가장 큰 비용은 빠뜨리고 이야기합니다.
비용 비교표
| 접근 방식 | 초기 비용 | 쿼리당 비용(추정) | 유지보수 부담 | 숨은 비용 |
|---|---|---|---|---|
| DIY Python(프록시 없음) | 무료 | $0 | 높음(깨짐, CAPTCHA) | 디버깅에 드는 시간 |
| DIY Python + residential proxy | 코드 자체는 무료 | 약 $1~5/GB | 중간~높음 | 프록시 제공업체 비용 |
| SERP API(SerpApi, ScraperAPI) | 무료 플랜 제한적 | 약 $0.50~5.00/1K queries | 낮음 | 대량 처리 시 빠르게 증가 |
| Thunderbit Chrome 확장 프로그램 | 무료 플랜(6페이지) | 크레딧 기반, 약 1크레딧/행 | 매우 낮음 | 대량 사용 시 유료 플랜 필요 |
| Thunderbit Open API(Extract) | 크레딧 기반 | 페이지당 약 20크레딧 | 낮음 | 추출당 과금 |
모두가 놓치는 숨은 비용: 바로 당신의 시간
유지보수와 디버깅에 40시간을 잡아먹는 0원짜리 DIY 솔루션은 사실 공짜가 아닙니다. 시급을 50달러로 잡으면 노동비만 2,000달러입니다. 게다가 다음 달 Google이 DOM을 바꾸면 또 깨질 수도 있죠.

McKinsey의 Technology Outlook에 따르면 . 그 이하에서는 자체 구축이 "ROI를 만들지 못한 채 예산만 소모"한다고 봅니다. 주당 몇백~몇천 건 조회하는 대부분의 이커머스 팀에게는 노코드 도구나 SERP API가 직접 만드는 방식보다 훨씬 경제적입니다.
자동 Google Shopping 가격 모니터링 설정하기
대부분의 가이드는 스크래핑을 일회성 작업으로 다룹니다. 하지만 이커머스 팀의 진짜 사용 사례는 지속적이고 자동화된 모니터링입니다. 오늘 가격만 필요한 게 아니라, 어제 가격, 지난주 가격, 앞으로의 가격까지 필요하니까요.
Thunderbit로 예약 스크래핑 설정하기
Thunderbit의 Scheduled Scraper는 "매일 오전 9시" 또는 "매주 월요일과 목요일 정오"처럼 평범한 문장으로 시간 간격을 설명하면, AI가 이를 반복 스케줄로 바꿔 줍니다. Google Shopping URL을 입력하고 **"Schedule"**을 클릭하면 끝입니다.
실행할 때마다 결과는 Google Sheets, Airtable, Notion으로 자동 내보내집니다. 최종적으로는 경쟁사 가격이 매일 자동으로 채워지는 스프레드시트가 만들어지고, 피벗 테이블이나 알림 설정에 바로 쓸 수 있습니다.
크론 잡도, 서버 관리도, Lambda 함수 골칫거리도 없습니다. (Selenium을 AWS Lambda에서 돌리느라 며칠을 허비했다는 개발자 글을 본 적이 있는데, Thunderbit의 스케줄러는 그런 걸 전부 건너뜁니다.)
를 더 자세히 보고 싶다면 별도 심층 가이드도 준비되어 있습니다.
Python으로 스케줄링하기(개발자용)
SERP API 방식을 쓰는 경우에는 cron job(Linux/Mac), Windows 작업 스케줄러, AWS Lambda나 Google Cloud Functions 같은 클라우드 스케줄러로 실행을 예약할 수 있습니다. APScheduler 같은 Python 라이브러리도 사용할 수 있습니다.
다만 그만큼 스크립트 상태 모니터링, 실패 처리, 정기적 프록시 로테이션, Google 페이지 변경 시 셀렉터 업데이트를 모두 책임져야 합니다. 대부분의 팀에게는 예약형 Python 스크래퍼를 유지하는 데 드는 엔지니어링 시간이 전용 도구 비용보다 더 큽니다.
Google Shopping 데이터 스크래핑을 위한 팁과 베스트 프랙티스
어떤 방법을 쓰든, 아래 몇 가지는 꼭 기억해 두면 좋습니다.
속도 제한을 지키세요
짧은 시간에 수백 번 요청을 몰아치면 차단당합니다. 심하면 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) 튜플 기준으로 중복 제거하면 됩니다.
법적 환경도 이해해야 합니다
공개된 상품 데이터를 스크래핑하는 행위는 일반적으로 합법으로 여겨지지만, 법적 환경은 빠르게 변하고 있습니다. 최근 가장 중요한 변화는 입니다. Google의 "SearchGuard" 안티스크래핑 시스템을 우회했다는 이유로 DMCA § 1201을 근거로 삼았죠. 이는 hiQ v. LinkedIn이나 Van Buren v. United States 같은 기존 판례에서 형성된 방어 논리와는 다른 새로운 집행 경로입니다.
실무 가이드라인은 다음과 같습니다.
- 공개적으로 접근 가능한 데이터만 스크래핑하세요. 제한 콘텐츠에 접근하려고 로그인하지 마세요.
- 개인 정보를 추출하지 마세요(리뷰어 이름, 계정 정보 등).
- Google의 이용약관은 자동 접근을 금지한다는 점을 기억하세요. SERP API나 브라우저 확장 프로그램을 쓰면 법적 회색지대를 줄일 수는 있지만 완전히 없애지는 못합니다.
- EU에서 운영한다면 GDPR도 고려해야 하지만, 상품 목록은 대부분 비개인적 상업 데이터입니다.
- 스크래핑 데이터를 기반으로 상용 제품을 만든다면 법률 자문을 받는 것이 좋습니다.
에 대해 더 깊이 보고 싶다면 별도 글에서 다루고 있습니다.
어떤 방법으로 Google Shopping 데이터를 스크래핑해야 할까?
같은 상품 카테고리에 세 가지 방식을 모두 적용해 본 뒤, 제 결론은 이렇습니다.
기술 지식이 많지 않고 빠르게 데이터가 필요하다면 — Thunderbit를 쓰세요. Google Shopping을 열고, 두 번 클릭하고, 내보내면 됩니다. 5분 안에 깔끔한 스프레드시트를 얻을 수 있습니다. 으로 부담 없이 시도해 볼 수 있고, 서브페이지 스크래핑 기능 덕분에 많은 Python 스크립트보다 더 풍부한 데이터를 얻을 수 있습니다.
개발자이고 반복 가능한 프로그래밍 접근이 필요하다면 — SERP API를 쓰세요. 안정성이 쿼리당 비용을 충분히 상쇄하고, 안티봇 스트레스를 건너뛸 수 있습니다. SerpApi는 문서가 가장 탄탄하고, ScraperAPI는 무료 플랜이 가장 넉넉합니다.
최대한의 제어가 필요하고 맞춤형 파이프라인을 만들고 있다면 — Playwright도 가능하지만, 현실을 알고 시작하세요. 프록시 관리, 셀렉터 유지보수, CAPTCHA 대응에 상당한 시간을 배정해야 합니다. 2025~2026년 기준 최소한의 우회 스택은 curl_cffi와 Chrome 위장 + residential proxy + 10~20초 템포입니다. 단순 requests 스크립트에 user-agent만 로테이션하는 방식은 사실상 끝났습니다.
가장 좋은 방법은 한 주를 다 태우지 않으면서 정확한 데이터를 얻는 방법입니다. 대부분의 사람들에게 그건 60줄짜리 Python 스크립트가 아니라, 두 번 클릭하는 방식입니다.
볼륨이 필요하다면 를 확인해 보시고, 실제 흐름이 궁금하다면 에서 튜토리얼을 시청해 보세요.
자주 묻는 질문
Google Shopping 데이터를 스크래핑하는 것은 합법인가요?
공개된 상품 데이터를 스크래핑하는 행위는 일반적으로 hiQ v. LinkedIn, Van Buren v. United States 같은 판례에 비추어 합법으로 여겨집니다. 다만 Google의 이용약관은 자동 접근을 금지하고 있고, 2025년 12월 Google이 SerpApi를 상대로 제기한 소송은 DMCA § 1201 기반의 새로운 우회 금지 논리를 제시했습니다. 신뢰할 수 있는 도구와 API를 사용하면 위험을 줄일 수 있습니다. 상업적 용도라면 법률 자문을 받는 것이 좋습니다.
차단되지 않고 Google Shopping을 스크래핑할 수 있나요?
가능하지만 방법이 중요합니다. SERP API는 안티봇 대응을 자동으로 처리합니다. Thunderbit의 Cloud Scraping은 분산 인프라를 사용해 차단을 피하고, Browser Scraping 모드는 본인의 Chrome 세션을 사용하므로 일반 브라우징처럼 보입니다. 직접 만드는 Python 스크립트는 residential proxy, 사람 같은 지연, TLS 핑거프린팅 관리가 필요하며, 그래도 차단은 흔합니다.
Google Shopping 데이터를 가장 쉽게 스크래핑하는 방법은 무엇인가요?
Thunderbit Chrome 확장 프로그램입니다. Google Shopping으로 이동해 "AI Suggest Fields"를 클릭하고, "Scrape"를 누른 뒤 Google Sheets나 Excel로 내보내면 됩니다. 코딩도, API 키도, 프록시 설정도 필요 없습니다. 전체 과정은 약 2분이면 끝납니다.
가격 모니터링을 위해 Google Shopping을 얼마나 자주 스크래핑할 수 있나요?
Thunderbit의 Scheduled Scraper를 사용하면 평문으로 일간, 주간 또는 원하는 간격의 모니터링을 설정할 수 있습니다. SERP API는 플랜의 크레딧 한도에 따라 빈도가 달라지며, 대부분의 제공업체는 수백 개 SKU의 일일 모니터링에는 충분한 수준을 제공합니다. 직접 만든 스크립트는 인프라가 허용하는 만큼 자주 돌릴 수 있지만, 빈도가 높아질수록 안티봇 문제가 커집니다.
Google Shopping 데이터를 Google Sheets나 Excel로 내보낼 수 있나요?
네. Thunderbit는 Google Sheets, Excel, Airtable, Notion으로 직접 무료 내보내기를 지원합니다. Python 스크립트는 CSV 또는 JSON으로 내보낸 뒤 스프레드시트 도구에 불러올 수 있습니다. 지속적인 모니터링이 필요하다면, Thunderbit의 Google Sheets 예약 내보내기가 자동 갱신되는 실시간 데이터셋을 만들어 줍니다.
- 더 알아보기