프록시로 Google 검색 결과(SERP) 스크래핑하기 (2026)

2026년 6월 12일 게시 · 약 9분 소요

Google은 스크래핑하기 가장 어려운 주류 대상이며, 이유는 단순합니다: Google은 누구보다 많은 트래픽을 보기 때문에 진짜 검색자가 어떻게 생겼는지에 대한 가장 풍부한 모델을 가지고 있습니다. 어떤 볼륨이든 데이터센터 IP로 두드리면 429, "sorry/index" 페이지, 또는 결과가 조용히 줄어드는 소프트 블록을 받게 됩니다. 이 가이드는 Google의 차단을 실제로 유발하는 것이 무엇인지, 그리고 2026년에 SERP 스크래퍼를 살아 있게 유지하는 프록시 및 속도 제한 전략을 다룹니다.

무엇이 Google 차단을 유발하는가

Google은 하나의 신호에 의존하지 않습니다 — 여러 신호를 쌓아 올려 합산 점수가 선을 넘으면 차단합니다:

여기서 주거용은 타협 불가다

대부분의 대상에서는 공개 데이터에 대해 데이터센터 IP로 넘어갈 수 있습니다. Google은 예외입니다: ASN 평판 점수화가 충분히 공격적이어서 데이터센터 프록시는 거의 즉시 스로틀링됩니다. 주거용 exit — 진짜 소비자 ASN — 이 SERP 스크래퍼가 볼륨을 유지하게 해줍니다. 데이터센터는 다른 모든 것에 남겨두고, 주거용 예산은 실제로 효과가 있는 곳에 쓰세요.

로테이션하되, exit별로 속도 제한하라

로테이션은 부하를 분산시켜 단일 IP가 봇처럼 보이지 않게 하지만, 당신을 살아남게 하는 규율은 풀 크기가 아니라 exit별 속도입니다. 천 개의 프록시도 전부 한꺼번에 쏘아대면 차단됩니다. 각 exit을 사람처럼 페이스 조절하세요:

import time, random, itertools
from curl_cffi import requests   # browser TLS fingerprint, see notes below

PROXIES = [
    "socks5h://USERNAME:[email protected]:913",
    "socks5h://USERNAME:[email protected]:913",
]
pool = itertools.cycle(PROXIES)

def serp(query, page=0):
    proxy = next(pool)
    params = {"q": query, "start": page * 10, "hl": "en"}
    r = requests.get("https://www.google.com/search", params=params,
                     impersonate="chrome",
                     proxies={"http": proxy, "https": proxy}, timeout=30)
    if r.status_code == 429 or "/sorry/" in r.url:
        raise RuntimeError("rate-limited - back off and rotate")
    return r.text

for q in queries:
    html = serp(q)
    parse(html)
    time.sleep(random.uniform(2.0, 5.0))   # human-paced gap between queries

무작위화된 지연은 실제로 일을 하고 있습니다: 고정된 sleep(3)은 그 자체로 지문입니다. 이를 변화시키고, 쿼리를 여러 exit에 분산시켜 각 exit이 Google의 IP당 임계값 아래로 유지되게 하세요.

Sticky 세션과 지오로케이션

지역화된 결과(순위, 언어, 통화)는 exit의 위치에 따라 달라지므로, 측정하려는 지역의 프록시를 고르고 여러 페이지짜리 쿼리에는 sticky 세션을 유지하여 한 검색의 모든 페이지가 같은 곳에서 나오게 하세요. 쿼리 도중에 exit을 섞으면 서로 다른 로케일에서 짜깁기된 결과가 나옵니다 — 순위 추적에는 쓸모없습니다.

지문을 잊지 마라

Google은 당신의 TLS 핸드셰이크도 읽습니다. 평범한 requests 호출은 Python임을 외치는 JA3를 보내며, 이는 IP 점수를 가중시킵니다. curl_cffi(위에서 사용)나 진짜 브라우저로 진짜 브라우저 지문을 보내세요 — curl_cffi로 TLS 지문 우회하기를 참고하세요. Google이 JS 동의 벽으로 게이트하기 시작하면, Turnstile 가이드에서 다룬 대로 진짜 브라우저 엔진으로 격상하세요 — 동일한 "JS 런타임이 필요함" 로직이 적용됩니다.

차단을 우아하게 처리하라

체크리스트

모든 IP 제품 · 언제든 이용 가능한 방대한 노드 풀

지금 가입하고 충전 금액의 최대 100%를 돌려받으세요

신규 사용자는 가입 시 500MB를 받고, 첫 충전 시 추가 보너스를 받습니다. 기간 한정 혜택입니다.