Best Buy Fiyat ve Stok Verilerini Kazımak 2026: Pratik ProxyHat Rehberi

Best Buy fiyat ve stok verilerini kazımak 2026 için adım adım rehber: Akamai bot korumasını aşma, CSS seçiciler, Python örnekleri ve ABD yerel proxy stratejileri.

How to Scrape Best Buy Prices and Stock in 2026
Bu makalede

Best Buy Fiyat ve Stok Verilerini Kazımak 2026: API mi HTML mi?

Best Buy fiyat ve stok verilerini kazımak 2026 yılında hâlâ en çok aranan e-ticaret veri toplama görevlerinden biridir. Sebebi basit: Best Buy'un resmi Products API erişim için onay gerektirir ve anahtarlar sıkı hız limitlerine tabidir. Canlı fiyatlandırma ve mağaza düzeyinde stok durumu ise genellikle doğrudan siteden çekilmelidir. Bu rehber, HTML kazıma yaklaşımını ProxyHat proxy altyapısıyla nasıl uygulayacağınızı gösterir.

Resmi API, katalog metaverisi (ürün adı, açıklama, kategori) için uygundur ancak gerçek zamanlı mağaza stoku ve promosyon fiyatları için her zaman güncel değildir. Ayrıca API anahtarı başvurusu günler sürebilir ve üretim ortamında saniyede yaklaşık 100 istek ile sınırlandırılır. Eğer binlerce SKU'yu saatlik olarak izlemeniz gerekiyorsa, HTML kazıma tek pratik seçenektir — ancak Best Buy'ın anti-bot savunmasıyla karşılaşacaksınız.

Best Buy'ın Anti-Bot Stack: Akamai Bot Manager

Best Buy, Akamai Bot Manager kullanır. Bu sistem, tarayıcı parmak izi ve davranışsal sinyallerle botları tespit eder. İki kritik çerez akışı vardır:

  • _abck: Tarayıcı sensör verisini içeren imza çerezi. Her sayfa yüklemesinde JavaScript tarafından güncellenir.
  • bm_sz: Bot yönetimi oturum belirteci. IP ve davranış kalıplarına göre risk skoru taşır.

Veri merkezi IP'leri genellikle 5-10 istek içinde Akamai tarafından zorlanır — ya CAPTCHA sayfası, ya 403 yanıtı, ya da boş sayfa döner. Bu nedenle datacenter proxy'leri Best Buy kazıması için neredeyse işe yaramaz. Mobil veya yerleşik (residential) proxy'ler, gerçek ISP atamalarından geldiği için çok daha uzun süreler boyunca çalışır.

Akamai Sensör Çerezi Nasıl Çalışır?

Akamai'nin istemci tarafı JavaScript'i, tarayıcı özelliklerini (canvas, WebGL, font listesi, zamanlama verileri) toplayarak bir sensör verisi paketi üretir. Bu paket _abck çerezine yazılır ve her istekte sunucu tarafından doğrulanır. Eğer sensör verisi eksik veya tutarsızsa, Akamai sessizce engeller — hata kodu vermeden sayfa içeriğini boşaltabilir.

Bu, standart requests kütüphanesinin neden başarısız olduğunu açıklar: Python requests JavaScript çalıştırmaz, dolayısıyla _abck çerezi asla oluşmaz. Çözüm, tarayıcı parmak izini taklit eden kütüphaneler kullanmaktır.

URL Paternleri ve CSS Seçiciler

Best Buy ürün sayfaları tutarlı bir URL yapısına sahiptir. Her ürün bir SKU kimliği ile tanımlanır:

https://www.bestbuy.com/site/<ürün-slug>/<sku>.p?skuId=<sku>

Örnek: https://www.bestbuy.com/site/sony-playstation-5/6426149.p?skuId=6426149

Temel CSS Seçiciler

Veri AlanıCSS SeçiciNotlar
Fiyat.priceView-customer-pricePromosyon fiyatını içerir
Orijinal fiyat.priceView-price-navigation ~ .priceView-regional-priceÇizili fiyat
Ürün başlığı.sku-title h1Sayfa başlığı
Stok durumu.fulfillment-availability-sectionMağaza/online durumu
Ürün özellikleri.specifications-tableTablo formatında

Dahili JSON Uç Noktaları

Best Buy, sayfa içi JavaScript tarafından çağrılan dahili API'ler kullanır. Bunlar doğrudan erişilebilir:

# Fiyat ve stok uç noktası (SKU + zip kodu)
https://www.bestbuy.com/productfulfillment?skuId=6426149&zip=60601

# Fiyat uç noktası
https://www.bestbuy.com/priceview?skuId=6426149

Bu uç noktalar JSON döndürür ve HTML ayrıştırmasından çok daha verimlidir. Ancak Akamai koruması altındadırlar — geçerli _abck çerezi ve gerçekçi IP gerektirir.

Örnek truncated yanıt:

{
  "sku": "6426149",
  "price": {
    "currentPrice": 499.99,
    "regularPrice": 549.99,
    "onSale": true
  },
  "inStoreAvailability": true,
  "stores": [
    {
      "storeId": "123",
      "storeName": "Chicago - Lincoln Park",
      "stockStatus": "IN_STOCK",
      "quantity": 12
    }
  ]
}

Mağaza Düzeyinde Stok İçin ABD Yerleşik Proxy'leri

Best Buy mağaza stoku lokasyona özeldir. Chicago'daki bir mağazada ürün varken, Miami'de olmayabilir. Best Buy web sitesi, kullanıcının IP adresinden veya zip kodundan coğrafi konum çıkarır ve buna göre stok gösterir.

Bu, veri toplama stratejiniz için iki şey ifade eder:

  1. Zip kodu parametresi yeterli değildir — Akamai IP coğrafi konumunu da doğrular.
  2. ABD yerleşik proxy'leri şarttır. ProxyHat ile şehir düzeyinde hedefleme yapabilirsiniz.

ProxyHat kullanıcı adında şehir parametresi ile coğrafi hedefleme:

# Chicago'dan bağlan
http://user-country-US-city-chicago:pass@gate.proxyhat.com:8080

# New York'tan bağlan
http://user-country-US-city-newyork:pass@gate.proxyhat.com:8080

# Los Angeles'tan bağlan
http://user-country-US-city-losangeles:pass@gate.proxyhat.com:8080

Bu şekilde, her şehir için ayrı bir oturum açarak o bölgedeki mağaza stokunu gerçekçi bir şekilde sorgulayabilirsiniz. ProxyHat lokasyonlar sayfasından desteklenen tüm ABD şehirlerini görebilirsiniz.

Proxy Türü Karşılaştırması

ÖzellikDatacenterResidentialMobile
Akamai geçişi5-10 istek sonra blokYüksek başarı oranıEn yüksek başarı oranı
Hız~50ms~200-500ms~300-800ms
FiyatEn düşükOrtaEn yüksek
Mağaza stokuÇalışmazİdealİdeal ama pahalı
Eşzamanlı oturum100+100+50-100

Best Buy için residential proxy'ler en iyi dengeyi sunar. ProxyHat fiyatlandırması sayfasından residential planları inceleyebilirsiniz.

Python ile Pratik Uygulama: curl_cffi + ProxyHat

Standart requests kütüphanesi Akamai sensör çerezini üretmediği için Best Buy'da çalışmaz. Bunun yerine curl_cffi kullanacağız — bu kütüphane, libcurl'ün TLS parmak izini gerçek Chrome tarayıcısını taklit edecek şekilde yapılandırır.

from curl_cffi import requests
import json
import time

# ProxyHat residential proxy - Chicago
def get_proxy(zip_code, session_id):
    return {
        "http": f"http://user-country-US-city-chicago-session-{session_id}:pass@gate.proxyhat.com:8080",
        "https": f"http://user-country-US-city-chicago-session-{session_id}:pass@gate.proxyhat.com:8080"
    }

# SKU bilgisi çek
def scrape_bestbuy_sku(sku_id, zip_code, session_id):
    proxy = get_proxy(zip_code, session_id)
    
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "Accept": "application/json, text/plain, */*",
        "Accept-Language": "en-US,en;q=0.9",
        "Referer": f"https://www.bestbuy.com/site/product/{sku_id}.p?skuId={sku_id}",
    }
    
    url = f"https://www.bestbuy.com/productfulfillment?skuId={sku_id}&zip={zip_code}"
    
    try:
        response = requests.get(
            url,
            headers=headers,
            proxies=proxy,
            impersonate="chrome120",
            timeout=30
        )
        
        if response.status_code == 403:
            print(f"403 - Akamai challenge. Backing off...")
            time.sleep(10)
            return None
            
        data = response.json()
        return {
            "sku": data.get("sku"),
            "price": data.get("price", {}).get("currentPrice"),
            "inStoreAvailability": data.get("inStoreAvailability"),
            "stores": data.get("stores", [])[:3]  # truncated
        }
    except Exception as e:
        print(f"Error: {e}")
        return None

# Kullanım
result = scrape_bestbuy_sku("6426149", "60601", "sess-chi-001")
print(json.dumps(result, indent=2))

Örnek çıktı:

{
  "sku": "6426149",
  "price": 499.99,
  "inStoreAvailability": true,
  "stores": [
    {"storeId": "123", "stockStatus": "IN_STOCK", "quantity": 12},
    {"storeId": "456", "stockStatus": "LOW_STOCK", "quantity": 2},
    {"storeId": "789", "stockStatus": "OUT_OF_STOCK", "quantity": 0}
  ]
}

curl ile Hızlı Test

Kodu yazmadan önce proxy bağlantısını test etmek için:

curl -x "http://user-country-US-city-chicago:pass@gate.proxyhat.com:8080" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
  -H "Accept: application/json" \
  "https://www.bestbuy.com/productfulfillment?skuId=6426149&zip=60601"

Rotasyon, Backoff ve Sayfalama Stratejileri

Zip Kodu Başına Yapışkan Oturum

Her zip kodu için ayrı bir -session- kimliği kullanın. Bu, ProxyHat'ın aynı IP'yi tutmasını sağlar ve Akamai'nin oturum sürekliliğini algılamasına yardımcı olur:

# Chicago için sabit oturum
http://user-country-US-city-chicago-session-chi-001:pass@gate.proxyhat.com:8080

# New York için sabit oturum  
http://user-country-US-city-newyork-session-ny-001:pass@gate.proxyhat.com:8080

403 ve Akamai Challenge Backoff

Akamai challenge aldığınızda (403 veya bozuk içerik), şu stratejiyi uygulayın:

  1. Exponential backoff: 5s, 10s, 20s, 40s aralıklarla yeniden dene.
  2. Oturum değiştir: Aynı IP'de 3 başarısızlık sonrası yeni -session- kimliği ile IP rotasyonu yapın.
  3. Çerez sıfırla: _abck ve bm_sz çerezlerini temizleyip yeniden edinin.
  4. Hız azalt: Saniyede istek sayısını 2-3'e düşürün.
import time
import random

def retry_with_backoff(func, max_retries=5):
    for attempt in range(max_retries):
        result = func()
        if result is not None:
            return result
        
        wait_time = (2 ** attempt) + random.uniform(0, 2)
        print(f"Retry {attempt + 1}, waiting {wait_time:.1f}s")
        time.sleep(wait_time)
    
    return None

Kategori Sayfalarında Sayfalama

Best Buy kategori sayfaları ?cp=1, ?cp=2 parametreleriyle sayfalanır. Her sayfada yaklaşık 24-48 ürün bulunur. Tüm SKU'ları toplamak için:

def scrape_category(category_url, max_pages=50):
    sku_ids = []
    for page in range(1, max_pages + 1):
        url = f"{category_url}?cp={page}"
        response = requests.get(url, proxies=proxy, impersonate="chrome120")
        
        # SKU'ları sayfa HTML'inden çıkar
        from bs4 import BeautifulSoup
        soup = BeautifulSoup(response.text, "html.parser")
        
        for link in soup.select("a.sku-link"):
            href = link.get("href", "")
            if "/site/" in href and ".p?" in href:
                sku = href.split("skuId=")[-1].split("&")[0]
                sku_ids.append(sku)
        
        time.sleep(2)  # Nazik hız
        
        # Son sayfa kontrolü
        if not soup.select("a.sku-link"):
            break
    
    return sku_ids

Etik ve Hukuki Hususlar

Best Buy fiyat ve stok verilerini kazımadan önce aşağıdaki noktaları göz önünde bulundurun:

  • Yalnızca herkese açık veri: Ürün fiyatları, stok durumu ve katalog bilgileri herkese açıktır. Hesap gerektiren verileri kazımayın.
  • Hesap veya ödeme otomasyonu yapmayın: Otomatik satın alma botları Best Buy'ın Hizmet Şartları'nı ihlal eder.
  • CFAA ve GDPR: ABD'de CFAA, yetkisiz erişimi yasaklar. Avrupa'da GDPR, kişisel veri toplamayı kısıtlar. Yalnızca herkese açık, kişisel olmayan veriyle çalışın.
  • robots.txt kontrolü: Best Buy'ın robots.txt dosyasını inceleyin ve engellenen yolları kazımayın.
  • Hız sınırlarına saygı: Saniyede 2-5 istek makul bir hızdır. Best Buy'ın sunucularına aşırı yük bindirmeyin.

Eğer sadece katalog metaverisi gerekiyorsa ve saatlik binlerce istek gerekmiyorsa, resmi Best Buy Developer API tier'i yeterli olabilir. API, fiyat ve temel ürün bilgileri için daha güvenilir ve yasal olarak daha temiz bir yoldur.

Best Buy Fiyat Takibi ve Stok Kontrolü İçin İş Akışı

Otomatik bir Best Buy fiyat takibi ve stok kontrol sistemi kurmak için önerilen mimari:

  1. SKU listesi hazırla: Kategori kazıması veya API ile tüm izlenecek SKU'ları topla.
  2. Zip kodu listesi: İzlenecek mağaza bölgelerini belirle (örneğin 50 büyük şehir).
  3. Oturum havuzu: Her zip kodu için bir ProxyHat sticky session aç.
  4. Periyodik yoklama: Her SKU için her zip kodunda saatlik yoklama yap.
  5. Veri depolama: Fiyat/stok değişikliklerini zaman serisi veritabanına kaydet.
  6. Uyarı sistemi: Stok geldiğinde veya fiyat düştüğünde bildirim gönder.

Bu mimari hakkında daha fazla bilgi için web kazıma kullanım senaryosu sayfamızı inceleyebilirsiniz. SERP takibi ile entegre etmek isterseniz SERP takibi rehberimize bakın.

ProxyHat Kurulumu ve Yapılandırması

ProxyHat'a başlamak için dokümantasyon adresinden hesap bilgilerinizi alabilirsiniz. Temel bağlantı parametreleri:

ParametreDeğer
Gatewaygate.proxyhat.com
HTTP Port8080
SOCKS5 Port1080
URL Formatıhttp://USERNAME:PASSWORD@gate.proxyhat.com:8080

Kullanıcı adında parametreler nokta ile ayrılır:

# Ülke + şehir + oturum
user-country-US-city-chicago-session-abc123

# Sadece ülke
user-country-US

# SOCKS5 alternatifi
socks5://user-country-US-city-chicago:pass@gate.proxyhat.com:1080

Sık Yapılan Hatalar ve Edge Case'ler

  • Standart requests kullanmak: Akamai sensör çerezi olmadan 403 alırsınız. curl_cffi veya Playwright kullanın.
  • Datacenter proxy kullanmak: 5-10 istek sonra bloklanırsınız. Residential şart.
  • Tek IP ile tüm ABD'yi taramak: IP coğrafi konumu stok verisini etkiler. Şehir düzeyinde hedefleme yapın.
  • Çerez yönetimini atlamak: _abck çerezini saklayın ve yeniden kullanın. Her istekte sıfırlamayın.
  • Aşırı hız: Saniyede 10+ istek Akamai'yi tetikler. 2-5 istek/saniye makuldur.
  • Referer header'ı eksik: Dahili API çağrılarında Referer header'ı ürün sayfasını göstermelidir.

Key Takeaways

  • Best Buy, Akamai Bot Manager kullanır; datacenter IP'ler 5-10 istek içinde bloklanır.
  • curl_cffi ile Chrome TLS parmak izi taklit edilerek Akamai sensör çerezi üretilebilir.
  • Mağaza stoku lokasyona özeldir — ABD residential proxy'leri ile şehir düzeyinde hedefleme şarttır.
  • Dahili /productfulfillment uç noktası, HTML ayrıştırmasından daha verimlidir.
  • Zip kodu başına sticky session + exponential backoff = yüksek başarı oranı.
  • Yalnızca herkese açık veriyi kazıyın; hesap/ödeme otomasyonu ToS ihlalidir.

Best Buy fiyat ve stok verilerini kazımak 2026 yılında doğru proxy altyapısı ile mümkündür. ProxyHat residential proxy'leri ve bu rehberdeki stratejilerle, güvenilir bir fiyat takibi ve stok kontrol sistemi kurabilirsiniz.

Sık sorulan sorular

Best Buy fiyat ve stok verilerini kazımak 2026 nedir?

Best Buy fiyat ve stok verilerini kazımak 2026, Best Buy web sitesinden ürün fiyatlarını ve mağaza düzeyinde stok durumlarını otomatik olarak toplama sürecidir. Resmi Products API onay ve hız limitleri gerektirdiği için, canlı fiyat ve stok verisi genellikle HTML kazıma veya dahili JSON uç noktaları üzerinden çekilir. Bu işlem, Akamai Bot Manager gibi anti-bot sistemlerini aşmak için residential proxy'ler ve tarayıcı parmak izi takibi gerektirir.

Best Buy kazıma için proxy kullanmak neden önemlidir?

Best Buy, Akamai Bot Manager ile korunan bir sitedir ve datacenter IP'leri genellikle 5-10 istek içinde bloklanır. Residential proxy'ler, gerçek ISP atamalarından geldiği için Akamai'nin bot tespitinden kaçınır. Ayrıca mağaza stoku lokasyona özeldir, bu nedenle ABD residential proxy'leri ile şehir düzeyinde coğrafi hedefleme yapmadan doğru stok verisi alınamaz. Proxy olmadan Best Buy kazıması pratikte imkansızdır.

Best Buy kazıma için hangi proxy türü en iyisidir?

Best Buy için residential proxy'ler en iyi dengeyi sunar. Datacenter proxy'ler Akamai tarafından hızla bloklanır, mobile proxy'ler ise daha pahalıdır. Residential proxy'ler, gerçek ISP IP'leriyle yüksek başarı oranı sağlar ve şehir düzeyinde coğrafi hedefleme destekler. ProxyHat ile user-country-US-city-chicago formatında kullanıcı adı parametreleri kullanarak ABD şehirlerine hedefleme yapabilirsiniz.

Best Buy kazımasında bloklanmayı nasıl önlersiniz?

Bloklanmayı önlemek için: curl_cffi gibi tarayıcı parmak izi taklit eden kütüphaneler kullanın, residential proxy'ler ile şehir düzeyinde hedefleme yapın, zip kodu başına sticky session kullanın, 403 yanıtlarında exponential backoff uygulayın, saniyede 2-5 istek hızını aşmayın, ve Referer header'ını doğru ayarlayın. Ayrıca _abck ve bm_sz çerezlerini yöneterek Akamai oturum sürekliliğini sağlayın.

Best Buy kazıması yasal mıdır?

Herkese açık ürün fiyatları ve stok verilerini kazımak genellikle yasaldır, ancak CFAA ve GDPR gibi yasalar yetkisiz erişimi ve kişisel veri toplamayı kısıtlar. Hesap gerektiren verilere erişmemeli, ödeme veya satın alma otomasyonu yapmamalı, ve Best Buy'ın robots.txt kurallarına uymalısınız. Yalnızca herkese açık, kişisel olmayan veriyle çalışın ve makul hız sınırlarına saygı gösterin.

Başlamaya hazır mısınız?

148+ ülkede 50M+ konut IP'sine AI destekli filtreleme ile erişin.

Fiyatlandırmayı GörüntüleKonut Proxy'leri
← Bloga Dön