2026'da Google Shopping fiyatları nasıl kazınırır sorusu, fiyat analistleri ve rekabet istihbaratı mühendisleri için her zamankinden daha kritik. Content API for Shopping yalnızca kendi merchant hesabınızdaki ürünleri döndürür; rakip fiyatları, satıcı listelerini ve ürün puanlarını görmek için tbm=shop SERP HTML'ini veya /shopping/product/ detay sayfalarını parse etmek zorundasınız. Bu rehber, ProxyHat üzerinden çalışan pratik bir Google Shopping fiyat kazıyıcı kurmanız için gereken tüm teknik detayları sunar.
2026'da Google Shopping Fiyatları Nasıl Kazınırır: Temel Yaklaşım
Google'ın iki farklı veri erişim yolu vardır. Content API for Shopping, bir merchant'ın kendi ürün feed'ini yönetmesi için tasarlanmıştır ve rakip katalog verisi döndürmez. Rekabetçi fiyat verisi toplamak istediğinizde geriye iki seçenek kalır:
- SERP HTML kazıma:
https://www.google.com/search?tbm=shop&q=...URL'sini isteyip HTML içindeki ürün kartlarını parse etmek. - Ürün detay sayfaları:
https://www.google.com/shopping/product/{product_id}üzerinden satıcı teklif panellerini kazımak.
Her iki yöntem de Google'ın anti-bot altyapısıyla karşılaşır. Bu nedenle proxy kullanımı opsiyonel değil, zorunludur. Google Content API for Shopping dokümantasyonu, API'nin merchant-only kapsamını net biçimde belirtir.
Google'ın Anti-Bot Stack'i: Neyle Karşılaşıyorsunuz?
Google Shopping kazıma işleminde üç temel engel vardır:
1. sorry/index Redirect'i
Şüpheli trafik algılandığında Google, isteği https://www.google.com/sorry/index?continue=... sayfasına yönlendirir. Bu sayfa genellikle bir reCAPTCHA challenge içerir ve otomatik çözüm zorlaşmıştır. Redirect'i tespit etmek, hard-block'a düşmeden önce rotasyon yapmanın anahtarıdır.
2. reCAPTCHA ve Akıllı Challenge'lar
Google, reCAPTCHA v2 ve v3 sürümlerini bir arada kullanır. v3 arka planda risk skoru hesaplarken, v2 görsel challenge sunar. IP başına istek yoğunluğu belirli bir eşiği geçtiğinde challenge tetiklenir.
3. Per-IP Rate Limiting
Google, IP başına agresif hız sınırları uygular. Tek bir datacenter IP'siyle saniyede 3-5 istek üzeri genellikle soft-block'a yol açar. 50-100 istek sonrası IP kalıcı olarak flag'lenebilir. Bu nedenle residential proxy rotasyonu, Google Shopping ürün verileri toplamanın temelidir.
Soft-block, genellikle 429 HTTP durum kodu veya geçici sorry redirect'i ile kendini gösterir. Hard-block ise kalıcı CAPTCHA ve IP ban anlamına gelir. Soft-block'u erken tespit etmek, proxy rotasyonu için kritik bir sinyaldir.
URL Pattern'leri ve CSS Seçiciler
SERP URL Yapısı
Google Shopping SERP'i için temel URL pattern'i:
https://www.google.com/search?tbm=shop&q=QUERY&gl=US&hl=en
Parametreler:
tbm=shop— Shopping tab'ına zorlargl=US— coğrafi konum (ülke kodu)hl=en— dil kodunum=20— sonuç sayısı (maks ~100)start=0— pagination offset
Ürün Kartı Seçicileri
SERP HTML'inde ürün kartları şu container'larda bulunur:
| Veri | CSS Seçici | Notlar |
|---|---|---|
| Ürün kartı container | .sh-dgr__content | Her kart bir ürün |
| Sonuç listesi | .sh-pr__product-results | Tüm kartların parent'ı |
| Fiyat | .a8Pemb | Örn: "$299.99" |
| Başlık | h3.tAxDx | Ürün adı |
| Satıcı | .aULzUe | Satıcı adı |
| Puan | span[aria-label*="rated"] | Örn: "4.5 stars" |
Ürün Detay ve Satıcı Teklif Paneli
https://www.google.com/shopping/product/{product_id} sayfasında satıcı teklifleri .sh-nfp__offer-grid container'ı içinde listelenir. Her satıcı teklifi için fiyat, satıcı adı, shipping maliyeti ve stok durumu ayrı ayrı çekilebilir.
Google HTML yapısını sık değiştirir; bu seçiciler 2026 başı itibarıyla geçerlidir ve düzenli olarak güncellenmelidir.
Neden Lokalize Fiyatlar Residential Proxy Gerektirir?
Google Shopping, kullanıcının coğrafi konumuna göre farklı satıcılar, fiyatlar ve para birimleri gösterir. Bir ABD'li alıcı ve bir Alman alıcı aynı ürün için tamamen farklı sonuç setleri görür:
- ABD kullanıcısı: USD fiyat, ABD satıcıları, Amazon/Walmart/B&H teklifleri
- Almanya kullanıcısı: EUR fiyat, EU satıcıları, MediaMarkt/Otto/Saturn teklifleri
- Japonya kullanıcısı: JPY fiyat, Rakuten/Yodobashi teklifleri
Bu nedenle gl ve hl parametreleri tek başına yeterli değildir. Google, IP'nin coğrafi konumunu da doğrular. Datacenter IP'leri genellikle ABD merkezli olsa bile, Google bunları "bot" olarak işaretler ve lokalize sonuçları bozar.
ProxyHat ile ülke ve şehir seviyesinde geo-targeting yapabilirsiniz:
# ABD kullanıcısı
http://user-country-US:pass@gate.proxyhat.com:8080
# Berlin, Almanya kullanıcısı
http://user-country-DE-city-berlin:pass@gate.proxyhat.com:8080
# Tokyo, Japonya kullanıcısı
http://user-country-JP-city-tokyo:pass@gate.proxyhat.com:8080
Bu şekilde hem IP coğrafi konumu hem de gl/hl parametreleri tutarlı olur ve gerçek lokalize fiyatlar elde edilir. ProxyHat lokasyonları sayfasından 190+ ülkeyi kontrol edebilirsiniz.
Python ile Çalışan Örnek: ProxyHat Üzerinden Google Shopping Kazıma
Aşağıdaki örnek, ProxyHat residential proxy üzerinden Google Shopping SERP'ini çeker ve bir ürün kartından title, price, seller ve rating verilerini çıkarır:
import requests
from bs4 import BeautifulSoup
import random
import time
# ProxyHat residential proxy - ABD geo
proxy_url = "http://user-country-US:YOUR_PASSWORD@gate.proxyhat.com:8080"
proxies = {"http": proxy_url, "https": proxy_url}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
}
def scrape_google_shopping(query, gl="US", hl="en", num=20, start=0):
url = "https://www.google.com/search"
params = {
"tbm": "shop",
"q": query,
"gl": gl,
"hl": hl,
"num": num,
"start": start,
}
# Randomized delay: 2-5 saniye
time.sleep(random.uniform(2, 5))
resp = requests.get(url, params=params, headers=headers,
proxies=proxies, timeout=30)
# Soft-block tespiti
if resp.status_code == 429:
print("Rate limited - rotating proxy...")
return None
if "sorry/index" in resp.url:
print("CAPTCHA redirect detected - hard block")
return None
soup = BeautifulSoup(resp.text, "html.parser")
results = []
cards = soup.select(".sh-dgr__content")
for card in cards[:5]: # İlk 5 kart (truncated demo)
title_el = card.select_one("h3.tAxDx")
price_el = card.select_one(".a8Pemb")
seller_el = card.select_one(".aULzUe")
rating_el = card.select_one("span[aria-label*=\"rated\"]")
results.append({
"title": title_el.get_text(strip=True) if title_el else None,
"price": price_el.get_text(strip=True) if price_el else None,
"seller": seller_el.get_text(strip=True) if seller_el else None,
"rating": rating_el.get("aria-label") if rating_el else None,
})
return results
# Örnek kullanım
if __name__ == "__main__":
data = scrape_google_shopping("wireless headphones", gl="US", hl="en")
if data:
for item in data:
print(f"{item['title']} | {item['price']} | {item['seller']} | {item['rating']}")
else:
print("Block detected, retry with new session")
Örnek çıktı (truncated):
Sony WH-1000XM5 | $298.00 | Amazon.com | 4.5 stars
Bose QuietComfort Ultra | $379.00 | Best Buy | 4.6 stars
Apple AirPods Max | $479.99 | Apple | 4.7 stars
SOCKS5 kullanmanız gereken durumlar için port 1080'i kullanın:
socks5://user-country-US:YOUR_PASSWORD@gate.proxyhat.com:1080
Pagination, Query Batching ve Soft-Block Tespiti
Pagination Stratejisi
Google Shopping SERP'inde start parametresi pagination sağlar. Ancak 3-4 sayfa sonrası sonuç kalitesi düşer ve block riski artar. Pratik öneriler:
- Her sorgu için maksimum 3-4 sayfa çekin (start=0, 20, 40, 60)
- Sayfalar arasında 3-7 saniye random delay uygulayın
- Her sorgu için yeni bir sticky session kullanın:
user-session-{query_hash} - 100+ sorguluk batch'leri 10-20'lik alt gruplara bölün
Sticky Session ile Tutarlılık
Aynı sorgu için pagination yaparken aynı IP'de kalmak, tutarlı sonuçlar verir:
http://user-country-US-session-abc123:pass@gate.proxyhat.com:8080
Farklı sorgular için yeni session ID kullanın, böylece her sorgu yeni bir residential IP'den gelir.
Soft-Block Erken Uyarı Sinyalleri
Hard CAPTCHA'ya düşmeden önce şu sinyalleri izleyin:
- 429 Too Many Requests — hemen rotasyon yap
- Sonuç sayısında düşüş — normalde 20 sonuç geliyorsa 5 geliyorsa flag'lenmiş olabilirsiniz
- Sorry redirect — IP ban öncesi son uyarı
- Boş ürün kartları — HTML geliyor ama kartlar boşsa partial block olabilir
Bu sinyallerden herhangi biri algılandığında, o session'ı terk edin ve yeni bir residential IP ile devam edin. ProxyHat, pricing sayfasında listelenen planlarda 100+ eşzamanlı session destekler.
Etik ve Yasal Açıklamalar
Google Shopping kazıma yapmadan önce şu noktaları değerlendirin:
- Sadece public fiyat verisi: Login gerektirmeyen, herkese açık fiyat ve ürün verilerini kazımak genel olarak kabul gören bir pratiktir.
- Google ToS: Google'ın Hizmet Şartları otomatik erişimi kısıtlayan maddeler içerir. Ticari kullanım için Google Search API veya resmi Shopping partner program daha合规 bir yol olabilir.
- CFAA ve GDPR: ABD'de CFAA kapsamında "yetkisiz erişim" yorumu değişkendir; hiQ Labs v. LinkedIn kararı sonrası public veri kazıma daha güvenli hale gelmiştir. GDPR açısından kişisel veri içermeyen fiyat/ürün verisi sorun yaratmaz, ancak kullanıcı davranış verisi toplamaktan kaçının.
- robots.txt: Google'ın robots.txt dosyasını kontrol edin ve sayfa bazında kurallara uyun.
Yüksek hacimli, ticari amaçlı fiyat izleme için Google'ın resmi Shopping API partner programı veya üçüncü parti SERP API'leri (SerpApi, Bright Data SERP API) compliant route olabilir. Bu rehber teknik implementasyon için yazılmıştır; yasal danışmanlık yerine geçmez.
Residential vs Datacenter vs Mobile: Hangi Proxy?
| Özellik | Residential | Datacenter | Mobile |
|---|---|---|---|
| Block riski | Düşük | Yüksek | Çok düşük |
| Hız | Orta (100-300ms) | Yüksek (<50ms) | Düşük (300-800ms) |
| Geo-targeting | Ülke + şehir | Sınırlı | Ülke (ISP bazlı) |
| Fiyat | Orta | Düşük | Yüksek |
| Google Shopping için | İdeal | Riskli | Aşırı güvenli |
Google Shopping için residential proxy, hız ve güvenlik arasında en iyi dengeyi sunar. Mobile proxy daha güvenli olsa da yavaş hızı yüksek hacimli kazıma için pratik değildir. Datacenter IP'leri ise Google'ın bot tespiti tarafından hızla işaretlenir.
Key Takeaways
- Content API yeterli değil: Rakip fiyat verisi için SERP HTML kazıma zorunludur.
- Anti-bot stack'i ciddiye alın: sorry redirect, reCAPTCHA ve per-IP rate limiting üç ana engeldir.
- Residential proxy + geo-targeting şart:
-country-USve-country-DE-city-berlinflag'leri lokalize fiyatlar için kritiktir. - Soft-block sinyallerini izleyin: 429, sonuç düşüşü ve sorry redirect, rotasyon için erken uyarıdır.
- Etik sınırlara uyun: Public veri kazıyın, robots.txt'yi kontrol edin, ticari yüksek hacim için resmi API'leri değerlendirin.
- ProxyHat ile implementasyon:
gate.proxyhat.com:8080üzerinden residential proxy, session ve geo flag'leri ile kolayca entegre edilir.
Hazır başlamak için web scraping use case sayfamızı inceleyin veya doğrudan ProxyHat dokümantasyonundan bağlantı detaylarını kontrol edin. SERP izleme için SERP tracking use case rehberi de faydalı olacaktır.






