← 블로그로 돌아가기

Python으로 Google Search API 사용하기: 완벽 튜토리얼 (2026)

Python에서 Google Search API를 사용하는 방법 — 인증된 요청, 결과 파싱, 페이지네이션, 재시도, 재사용 가능한 클라이언트 클래스까지. 예제 포함.

1 분 소요

이 튜토리얼은 Python에서 Google에 쿼리를 보내고 깔끔한 구조화된 결과를 얻는 방법을 보여줍니다 — 2026년 가장 저렴한 Google Search API인 serp.cheap를 사용합니다.

설치

pip install requests

최소 예제

import requests

resp = requests.post(
    "https://api.serp.cheap/v1/search",
    headers={"X-API-Key": "YOUR_KEY"},
    json={"q": "best electric cars 2026", "gl": "us", "page": 1},
    timeout=30,
)
resp.raise_for_status()
for r in resp.json()["organic"]:
    print(f'#{r["position"]} {r["title"]} — {r["link"]}')

재시도 기능이 있는 재사용 가능한 클라이언트

import requests
from requests.adapters import HTTPAdapter, Retry

class SerpClient:
    def __init__(self, api_key: str):
        self.s = requests.Session()
        self.s.headers.update({"X-API-Key": api_key})
        retries = Retry(total=4, backoff_factor=1.5,
                        status_forcelist=[429, 500, 502, 503, 504])
        self.s.mount("https://", HTTPAdapter(max_retries=retries))

    def search(self, q, gl="us", page=1, tbs=None):
        body = {"q": q, "gl": gl, "page": page}
        if tbs:
            body["tbs"] = tbs
        r = self.s.post("https://api.serp.cheap/v1/search", json=body, timeout=30)
        r.raise_for_status()
        return r.json()

client = SerpClient("YOUR_KEY")
data = client.search("python web scraping", gl="us")
print(data["stats"])  # balance, cost, cached

페이지네이션

def all_results(client, q, pages=3, gl="us"):
    out = []
    for p in range(1, pages + 1):
        out += client.search(q, gl=gl, page=p)["organic"]
    return out

각 페이지는 별도로 과금되는 요청입니다 — 필요할 때만 지연 로딩하세요. 자세한 내용은 페이지네이션을 참고하세요.

비용 관리

stats.cost는 크레딧 단위입니다(1 = $0.0001). 캐시 적중은 3 크레딧, 신규 조회는 6 크레딧입니다. 반복되는 쿼리는 자동으로 절반 가격에 캐시에서 제공됩니다.

다음 단계

Frequently asked questions

Python에서 Google Search API를 호출하는 가장 쉬운 방법은 무엇인가요?+

requests 라이브러리로 쿼리를 SERP API에 POST하세요. serp.cheap의 경우: requests.post('https://api.serp.cheap/v1/search', headers={'X-API-Key': KEY}, json={'q': query, 'gl': 'us'}). 응답 JSON에는 organic[] 리스트가 들어 있습니다. 타입 지정 클라이언트를 선호하나요? pip install serpcheap으로 공식 SDK를 설치하세요(Django 및 FastAPI 통합도 제공됩니다).

Python에서 속도 제한(rate limit)은 어떻게 처리하나요?+

HTTP 429를 잡아서 지수 백오프로 재시도하세요(예: urllib3 Retry 또는 tenacity 사용). serp.cheap의 속도 제한은 플랜별로 다릅니다 — 무료 등급은 분당 60건(초당 1건), 종량제는 분당 600건(초당 10건)이며, 상위 플랜에서는 최대 초당 60건까지 올라갑니다.

API 키 받기

직접 구매가 가장 저렴, 카드 또는 암호화폐로 결제, KYC 불필요. 또는 마켓플레이스 이용.