SERP 스크래핑이란?
SERP(Search Engine Results Page) 스크래핑은 검색 엔진 결과 페이지에서 순위, 스니펫, 광고, 관련 질문 등의 데이터를 자동으로 수집하는 것입니다. SEO 전문가, 마케터, 연구자에게 필수적인 도구입니다.
하지만 Google과 Bing은 자동화된 접근을 적극적으로 차단합니다. 프록시 없이 SERP를 스크래핑하면 몇 번의 요청 후에 CAPTCHA나 차단에 직면하게 됩니다.
SERP 스크래핑에 프록시가 필수인 이유
검색 엔진은 안티봇 시스템 중 가장 정교한 것을 운영합니다:
- IP 기반 속도 제한 — 단일 IP에서 짧은 시간에 많은 검색 쿼리를 보내면 즉시 CAPTCHA가 트리거됩니다.
- 데이터센터 IP 차단 — Google은 알려진 데이터센터 IP 범위를 기본적으로 의심합니다.
- 행동 분석 — 비인간적인 검색 패턴(일정한 간격, 순차적 쿼리)을 감지합니다.
- 지역 기반 결과 — SERP 결과는 검색자의 위치에 따라 크게 달라지므로 정확한 지역 타겟팅이 필요합니다.
프록시 유형별 SERP 스크래핑 성공률
| 프록시 유형 | Google 성공률 | Bing 성공률 | 권장 용도 |
|---|---|---|---|
| 레지덴셜 | 90-95% | 95%+ | 대부분의 SERP 스크래핑 |
| 데이터센터 | 30-50% | 70-80% | 권장하지 않음 |
| 모바일 | 95%+ | 98%+ | 최고 성공률 필요 시 |
| ISP | 85-92% | 93%+ | 속도 + 신뢰 필요 시 |
Google SERP 스크래핑 구현
from proxyhat import ProxyHat
import urllib.parse
client = ProxyHat(api_key="your_api_key")
def scrape_google(query, country="us", language="en", num_results=10):
params = urllib.parse.urlencode({
"q": query,
"num": num_results,
"hl": language,
"gl": country,
})
url = f"https://www.google.com/search?{params}"
response = client.get(url, proxy_type="residential", country=country.upper())
if response.status_code == 200:
return response.text
return None
# 사용 예
html = scrape_google("best proxy service", country="kr", language="ko")
Bing SERP 스크래핑
def scrape_bing(query, country="us", count=10):
params = urllib.parse.urlencode({
"q": query,
"count": count,
"cc": country,
})
url = f"https://www.bing.com/search?{params}"
response = client.get(url, proxy_type="residential", country=country.upper())
return response.text if response.status_code == 200 else None
SERP 데이터 파싱
BeautifulSoup으로 Google SERP를 파싱합니다:
from bs4 import BeautifulSoup
def parse_google_results(html):
soup = BeautifulSoup(html, "html.parser")
results = []
for g in soup.select("div.g"):
title_el = g.select_one("h3")
link_el = g.select_one("a")
snippet_el = g.select_one("div.VwiC3b")
if title_el and link_el:
results.append({
"title": title_el.text,
"url": link_el["href"],
"snippet": snippet_el.text if snippet_el else "",
})
return results
대규모 SERP 모니터링
수천 개의 키워드를 정기적으로 추적하려면 체계적인 인프라가 필요합니다:
- 큐 시스템 — Redis나 RabbitMQ로 스크래핑 작업을 큐에 넣어 관리합니다.
- 분산 워커 — 여러 워커가 큐에서 작업을 가져와 병렬로 실행합니다.
- 결과 저장 — 데이터베이스에 시계열 데이터로 저장하여 순위 변동을 추적합니다.
- 알림 시스템 — 순위가 크게 변동하면 알림을 보냅니다.
차단 방지 기법
- 요청 간격 — Google에는 최소 5-10초 간격을 유지하십시오.
- User-Agent 로테이션 — 실제 브라우저 User-Agent를 사용하고 로테이션하십시오.
- 지역 매칭 — 프록시 위치와 검색 지역 파라미터를 일치시키십시오.
- 세션 관리 — 쿠키를 적절히 처리하십시오.
핵심 요약
- SERP 스크래핑에는 레지덴셜 프록시가 최적의 선택입니다.
- 프록시 위치를 검색 지역과 일치시켜야 정확한 결과를 얻을 수 있습니다.
- 요청 간격, User-Agent 로테이션, 적절한 헤더가 차단 방지에 필수적입니다.
- 대규모 모니터링에는 큐 시스템과 분산 워커를 사용하십시오.
- ProxyHat의 레지덴셜 프록시는 도시 수준 지역 타겟팅과 자동 IP 로테이션을 제공합니다.






