C#에서 Google을 스크래핑하는 것은 보통 HttpClient + HtmlAgilityPack에서 시작해 프록시 청구서와 헤드리스 브라우저로 끝납니다. 저렴한 방법은 이렇습니다. Google 결과를 구조화된 JSON으로 반환하는 요청 한 번 — 프록시도, 파싱도 없습니다.
.NET에서 직접 스크래핑이 비싸지는 이유
- IP 차단 — Google은 데이터센터 IP를 빠르게 차단하므로 순환 레지덴셜 프록시를 임대해야 합니다.
- CAPTCHA — 대량 요청이 이를 유발하며 해결에 비용이 듭니다.
- 헤드리스 브라우저 — JS로 렌더링되는 결과 때문에 Playwright/Selenium으로 내몰리는데, 부하가 걸리면 무겁습니다.
- 셀렉터 부식 — Google의 DOM이 바뀌면 HtmlAgilityPack XPath가 깨집니다.
저렴한 방법: 요청 한 번
HttpClient와 System.Text.Json만 사용 — 추가 패키지 없음:
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-API-Key",
Environment.GetEnvironmentVariable("SERP_CHEAP_API_KEY"));
var res = await http.PostAsJsonAsync("https://api.serp.cheap/v1/search",
new { q = "best crm software", gl = "us" });
var doc = await res.Content.ReadFromJsonAsync<JsonElement>();
foreach (var r in doc.GetProperty("organic").EnumerateArray())
{
Console.WriteLine($"{r.GetProperty("position")}. {r.GetProperty("title")}");
Console.WriteLine($" {r.GetProperty("link")}");
}
프록시도, 브라우저도, 유지보수할 파서도 없습니다.
또는 공식 SDK 사용하기
dotnet add package SerpCheap
var client = new SerpCheap.Client(
Environment.GetEnvironmentVariable("SERP_CHEAP_API_KEY"));
var res = await client.SearchAsync(new SearchParams { Q = "best crm software", Gl = "us" });
Console.WriteLine(res.Organic[0].Title);
웹 앱을 만드시나요? dotnet add package SerpCheap.AspNetCore가 클라이언트를 DI에 등록해 컨트롤러에 주입할 수 있게 합니다.
비용
| 쿼리당 가격 | |
|---|---|
| 신규 결과 | $0.0006 |
| 캐시 결과 | $0.0003 |
| 가입 시 무료 | 100회 검색 |
$0.75/1k부터 사용한 만큼 지불하며 크레딧은 12개월간 유효합니다 — 레지덴셜 프록시 대역폭만 따져도 그보다 저렴합니다. 가장 저렴한 SERP API 비교를 참고하세요.
사용하게 될 매개변수
gl— 결과 국가. 국가별 로컬 SEO를 참고하세요.hl— 인터페이스 언어.page— 1부터 시작. 페이지네이션을 참고하세요.tbs— 최신 결과를 위한 시간 필터.
다음
serp.cheap 사용해 보기
스니펫을 복사하고 키를 추가하면 C#에서 Google 스크래핑이 시작됩니다. 가입 시 100회 무료 검색 — 카드 불필요. 이후에는 $0.75/1k부터 사용한 만큼 지불하며, 크레딧은 12개월간 유효합니다.
- 무료 API 키 받기 →
- 카드 결제를 선호하시나요? serp.cheap는 RapidAPI(
$0.90/1k)와 Apify($1.50/1k)에서도 이용할 수 있습니다.