2026'da Best Buy Fiyatları ve Stoku Nasıl Kazınır: Pratik Proxy Rehberi

Best Buy fiyat ve stok verilerini API ile mi yoksa HTML kazıma ile mi çekmeli? Akamai Bot Manager'ı aşma, ProxyHat ile ABD yerleşik proxy kullanma ve Python örneklerini bu rehberde bulabilirsiniz.

How to Scrape Best Buy Prices and Stock in 2026: Proxies, Selectors & Anti-Bot Workarounds

2026'da Best Buy fiyatları ve stoku nasıl kazınır? Bu soru, e-ticaret fiyat izleme ve envanter takibi yapan mühendislerin en sık karşılaştığı teknik problemdir. Best Buy'ın resmi Products API üyelik onayı gerektirir ve API anahtarlarını sıkı oran sınırlarına tabi tutar; bu yüzden canlı fiyatlar ve mağaza seviyesinde stok durumu genellikle doğrudan web sitesinden kazınmalıdır. Bu rehberde, Best Buy'ın anti-bot savunmasını anlamaktan Python ile çalışan bir kazıma hattı kurmaya kadar tüm adımları ele alıyoruz.

2026'da Best Buy Fiyatları ve Stoku Kazıma: API mi HTML mi?

Best Buy, geliştiriciler için resmi bir Products API sunar. Ancak bu API'ye erişim ön onay gerektirir ve onaylandıktan sonra bile istek oranları sınırlıdır. Üstelik API, mağaza seviyesinde stok durumu (in-store availability) için doğrudan bir endpoint sağlamaz; bu veri yalnızca web arayüzü üzerinden, ZIP kodu bazlı sorgulamalarla görünür hale gelir.

YaklaşımAvantajlarDezavantajlar
Resmi Products APIYapılandırılmış JSON, yasal olarak güvenli, yüksek oran limitleri (onaylı anahtar başına saniyede ~5 istek)Üyelik onayı gerekir, mağaza stok verisi yok, fiyat gecikmeleri olabilir
HTML / JSON endpoint kazımaMağaza seviyesi stok, canlı fiyat, kategori tarama; onay gerekmezAkamai Bot Manager ile karşılaşırsınız, proxy ve oturum yönetimi gerekir

Pratik sonuç: Eğer yalnızca ürün kataloğu ve temel fiyat verisi gerekiyorsa ve API onayınız varsa, resmi API yeterli olabilir. Ancak mağaza seviyesinde stok takibi veya canlı fiyat değişikliklerini izleme gerekiyorsa, web kazıma kaçınılmazdır.

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

Best Buy, Akamai Bot Manager kullanır. Bu sistem, tarayıcı parmak izi (browser fingerprinting), JavaScript sensor verisi ve davranışsal analiz ile botları tespit eder. İki temel çerez bu süreci yönetir:

  • _abck: Akamai'nin sensor doğrulama çerezi. Bu çerez, tarayıcının JavaScript motorundan toplanan sensor verisi ile üretilir. Eğer sensor verisi geçerli değilse, _abck çerezi "challenge" modunda kalır ve sonraki istekler 403 döndürür.
  • bm_sz: Bot Manager'ın oturum takip çerezi. Bu çerez, IP ve tarayıcı parmak izini birleştirerek bot puanı hesaplar.

Datacenter IP'leri genellikle ilk birkaç istek içinde Akamai tarafından challenge'a düşer. Bunun nedeni, datacenter IP bloklarının Akamai'nin itibar veritabanında düşük puana sahip olmasıdır. Bu yüzden Best Buy kazıma işlemleri için ABD yerleşik residential proxy'ler şarttır.

Akamai'nin sensor çerezi _abck, JavaScript çalıştıran gerçek bir tarayıcı ortamı gerektirir. requests gibi basit HTTP kütüphaneleri bu çerezi geçerli şekilde üretemez; bu yüzden curl_cffi veya Playwright gibi araçlar tercih edilir.

URL Desenleri ve Seçiciler

Ürün (SKU) Sayfaları

Best Buy ürün sayfaları şu deseni izler:

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

Örnek: https://www.bestbuy.com/site/sony-wh-1000xm5-wireless-noise-canceling-headphones-black/6487508.p?skuId=6487508

Fiyat ve Başlık Seçicileri

Sayfa HTML'inde fiyat ve ürün başlığı şu CSS seçicilerinde bulunur:

  • Fiyat: .priceView-customer-price — içinde $ işareti ile fiyat metni yer alır.
  • Ürün başlığı: .sku-title veya .sku-title h1 — ürün adını içerir.

XPath alternatifleri:

//div[contains(@class, 'priceView-customer-price')]//text()
//h1[contains(@class, 'sku-title')]/text()

Stok ve Fiyat JSON Endpoint'leri

Best Buy, mağaza stok durumu için dahili bir endpoint kullanır. Bu endpoint, SKU ID ve ZIP kodu ile sorgulanır:

https://www.bestbuy.com/fulfillment/storepickup/v2/sku/<skuId>?postalCode=<zip>

Ayrıca fiyat için:

https://www.bestbuy.com/productfulfillment/cmm/v2/skus/<skuId>/fulfillment?context=selectview&zip=<zip>

Bu endpoint'ler JSON döndürür ve HTML parse etme ihtiyacını azaltır. Ancak yine de Akamai challenge'ına tabidir.

Örnek JSON Yanıtı (Kısaltılmış)

{
  "sku": "6487508",
  "price": 329.99,
  "inStoreAvailability": true,
  "stores": [
    {
      "storeId": "0028",
      "name": "Chicago Loop",
      "stock": 3,
      "distance": 1.2
    }
  ]
}

Neden ABD Residential Proxy ve Şehir Geosu Gerekli?

Best Buy'ın mağaza stok durumu konuma göre değişir. Bir ürün Chicago'da stokta varken Miami'de tükenmiş olabilir. Bu yüzden stok sorgulamaları her ZIP kodu için ayrı ayrı yapılmalı ve her sorgu o bölgeye yakın bir IP'den gelmelidir.

ProxyHat ile şehir seviyesinde geo-targeting yapabilirsiniz:

http://user-country-US-city-chicago:pass@gate.proxyhat.com:8080
http://user-country-US-city-miami:pass@gate.proxyhat.com:8080
http://user-country-US-city-dallas:pass@gate.proxyhat.com:8080

Bu şekilde, her şehir için ayrı bir sticky session oluşturarak o bölgenin stok verisini çekersiniz. Datacenter proxy'ler ise Akamai tarafından hızlıca engellenir ve mağaza stok sorguları başarısız olur.

Python ile Best Buy Kazıma: Çalışan Örnek

Aşağıdaki örnek, curl_cffi kütüphanesini kullanarak Akamai'nin TLS parmak izini taklit eder ve ProxyHat residential proxy'leri ile Best Buy'dan fiyat/stok verisi çeker.

import json
import time
from curl_cffi import requests

PROXY = "http://user-country-US-city-chicago:pass@gate.proxyhat.com:8080"

SKU = "6487508"
ZIP = "60601"

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",
    "Accept-Language": "en-US,en;q=0.9",
}

# 1. Önce ürün sayfasını ziyaret et — _abck çerezini topla
session = requests.Session(impersonate="chrome120")
session.proxies = {"http": PROXY, "https": PROXY}

product_url = f"https://www.bestbuy.com/site/product/{SKU}.p?skuId={SKU}"
resp = session.get(product_url, headers=headers, timeout=15)
print(f"Ürün sayfası: {resp.status_code}")

# 2. Stok ve fiyat JSON endpoint'ini sorgula
fulfillment_url = (
    f"https://www.bestbuy.com/productfulfillment/cmm/v2/skus/{SKU}/fulfillment"
    f"?context=selectview&zip={ZIP}"
)
resp2 = session.get(fulfillment_url, headers=headers, timeout=15)
print(f"Fulfillment: {resp2.status_code}")

if resp2.status_code == 200:
    data = resp2.json()
    print(json.dumps({
        "sku": data.get("sku"),
        "price": data.get("price"),
        "inStoreAvailability": data.get("inStoreAvailability"),
    }, indent=2))
else:
    print("Akamai challenge veya rate limit — backoff uygula")
    time.sleep(5)

Node.js ile Basit Alternatif

const fetch = require('node-fetch');

const proxy = 'http://user-country-US-city-chicago:pass@gate.proxyhat.com:8080';
const sku = '6487508';
const zip = '60601';

const url = `https://www.bestbuy.com/productfulfillment/cmm/v2/skus/${sku}/fulfillment?context=selectview&zip=${zip}`;

fetch(url, {
  headers: {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Accept': 'application/json',
  },
  agent: new HttpsProxyAgent(proxy),
})
  .then(r => r.json())
  .then(d => console.log(d.sku, d.price, d.inStoreAvailability))
  .catch(e => console.error('Hata:', e.message));

curl ile Hızlı Test

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/cmm/v2/skus/6487508/fulfillment?context=selectview&zip=60601"

Oturum Yönetimi, Backoff ve Kategori Tarama

ZIP Bazlı Sticky Session Rotasyonu

Her ZIP kodu için ayrı bir sticky session kullanın. Bu, Akamai'nin oturum tutarlılığını algılamasına yardımcı olur ve aynı IP'den gelen ardışık istekleri doğal gösterir.

zips = ["60601", "10001", "90001", "75201", "33101"]

for zip_code in zips:
    session_id = f"bb-{zip_code}"
    proxy = f"http://user-country-US-session-{session_id}:pass@gate.proxyhat.com:8080"
    session.proxies = {"http": proxy, "https": proxy}
    # fulfillment sorgusu yap...

403 ve Akamai Challenge'ında Backoff

Akamai challenge aldığınızda (genellikle 403 veya 429 yanıtı), exponential backoff uygulayın:

import time

def fetch_with_backoff(session, url, max_retries=5):
    for attempt in range(max_retries):
        resp = session.get(url, timeout=15)
        if resp.status_code == 200:
            return resp.json()
        wait = 2 ** attempt + (attempt * 0.5)
        print(f"Deneme {attempt+1}: {resp.status_code}, {wait:.1f}s bekleniyor")
        time.sleep(wait)
    return None

Tipik backoff süreleri: ilk denemeden sonra 2 saniye, ikinciden sonra 4 saniye, üçüncüden sonra 8 saniye. 5 denemeden sonra başarısız olursa, o oturumu terk edin ve yeni bir session ID ile devam edin.

Kategori Sayfalarında Sayfalama

Best Buy kategori sayfaları ?cp=<sayfa> parametresi ile sayfalanır:

https://www.bestbuy.com/site/audio/headphones/abcat0204001.c?id=abcat0204001&cp=2

Her sayfada ~24 ürün kartı bulunur. Kategori taraması sırasında her sayfa için yeni bir request session kullanın ve sayfalar arasında 2-3 saniye bekleme uygulayın. Bu, doğal gezinme davranışına daha yakın olur.

Yaygın Hatalar ve Sınır Durumları

  • Akılsız rate limit: Saniyede 50+ istek göndermek, Akamai'nin otomatik engellemesini tetikler. Hedef oran: saniyede 2-3 istek, oturum başına.
  • Tek IP ile tüm ZIP kodlarını sorgulamak: Chicago IP'si ile Miami stok sorgusu yapmak tutarsız veri döndürebilir. Her şehir için o şehre yakın bir IP kullanın.
  • JavaScript sensor'i yok saymak: requests kütüphanesi _abck çerezini geçerli şekilde üretemez. curl_cffi veya Playwright kullanın.
  • Fiyat dalgalanması: Best Buy fiyatları gün içinde değişebilir. En az 4 saatte bir güncelleme yapın.
  • Stok durumu yanıltıcı: "In stock" bazen yalnızca online stok anlamına gelir. Mağaza stoku için inStoreAvailability alanını doğrulayın.

ProxyHat Kurulumu ve İç Bağlantılar

Best Buy kazıma hattınızı kurmak için ProxyHat'ın residential proxy ağını kullanabilirsiniz. Fiyatlandırma sayfasından uygun planı seçin, ardından lokasyonlar sayfasından ABD şehir seviyesinde erişilebilir bölgeleri kontrol edin.

Teknik dokümantasyon için ProxyHat Docs adresini ziyaret edin. Web kazıma ve SERP takibi kullanım senaryoları için sırasıyla web kazıma ve SERP takibi sayfalarına bakabilirsiniz.

ProxyHat bağlantı detayları:

ParametreDeğer
Gatewaygate.proxyhat.com
HTTP port8080
SOCKS5 port1080
Geo-targetinguser-country-US-city-chicago
Sticky sessionuser-session-bb-60601

Etik ve Yasal Hususlar

Best Buy kazıma işlemi uygularken şu sınırlara dikkat edin:

  • Yalnızca herkese açık katalog/fiyat verisi: Giriş yapmadan erişilebilen ürün sayfaları ve fiyat bilgileri kazınabilir. Hesap gerektiren veriler (kişisel sipariş geçmişi, ödeme bilgileri) kazınmamalıdır.
  • Hesap veya ödeme otomasyonu yok: Otomatik sepete ekleme, checkout veya ödeme akışları Best Buy'ın Kullanım Şartları'nı ihlal eder.
  • CFAA ve GDPR: ABD'de Computer Fraud and Abuse Act (CFAA) ve Avrupa'da GDPR, yetkisiz veri toplama konusunda sınırlamalar getirir. Yalnızca herkese açık veriyi topladığınızdan emin olun.
  • robots.txt kontrolü: Best Buy'ın robots.txt dosyasını inceleyin; engellenen yollara istek göndermeyin.
  • Resmi API yeterli olduğunda onu kullanın: Eğer yalnızca ürün kataloğu ve temel fiyat gerekiyorsa, API onayı almak hem yasal olarak daha güvenli hem de teknik olarak daha az kırılgandır.

Temel Çıkarımlar

  • Best Buy'ın resmi Products API onay gerektirir ve mağaza stok verisi sağlamaz; web kazıma çoğu kullanım senaryosu için gereklidir.
  • Akamai Bot Manager (_abck, bm_sz) datacenter IP'leri ilk birkaç istekte engeller; ABD residential proxy'ler şarttır.
  • Mağaza stoku konuma göre değişir; şehir seviyesinde geo-targeting (-country-US-city-chicago) kullanın.
  • curl_cffi ile Akamai TLS parmak izini taklit edin; requests tek başına yetersizdir.
  • Her ZIP için ayrı sticky session, exponential backoff ve saniyede 2-3 istek oranı güvenilir kazıma için yeterlidir.
  • Etik sınırlar: yalnızca herkese açık veri, hesap/checkout otomasyonu yok, robots.txt'a uyum.

SSS

Best Buy fiyat ve stok kazıma nedir?

Best Buy fiyat ve stok kazıma, Best Buy web sitesinden ürün fiyatları, mağaza seviyesinde stok durumu ve ürün bilgilerini otomatik olarak toplama işlemidir. Resmi Products API onay gerektirdiği ve mağaza stok verisi sağlamadığı için, bu veriler genellikle web kazıma ile HTML veya dahili JSON endpoint'leri üzerinden çekilir.

Bu işlem proxy kullanıcıları için neden önemlidir?

Best Buy Akamai Bot Manager kullanır ve datacenter IP'leri ilk birkaç istekte engeller. Residential proxy'ler, gerçek ev interneti IP'leri olarak Akamai'nin itibar kontrolünden geçer. Ayrıca mağaza stoku konuma göre değiştiği için, şehir seviyesinde geo-targeting yapabilen bir proxy servisi olmadan doğru stok verisi elde edilemez.

Best Buy kazıma için hangi proxy tipi en iyisidir?

ABD yerleşik residential proxy'ler en iyi sonucu verir. Datacenter proxy'ler Akamai tarafından hızlıca engellenir. Mobile proxy'ler de çalışabilir ancak maliyetleri daha yüksektir. Şehir seviyesinde geo-targeting (örneğin -country-US-city-chicago) destekleyen residential proxy'ler, mağaza stok sorguları için idealdir.

Best Buy kazıma sırasında engellenmekten nasıl kaçınılır?

Engellenmemek için: (1) curl_cffi veya Playwright ile gerçek tarayıcı parmak izi taklit edin; (2) her ZIP kodu için ayrı sticky session kullanın; (3) saniyede 2-3 istek oranını aşmayın; (4) 403/429 yanıtlarında exponential backoff uygulayın; (5) ABD residential proxy'ler ile şehir geo-targeting yapın; (6) her oturumda önce ürün sayfasını ziyaret edip _abck çerezini toplayın.

Best Buy'ın resmi API'si ne zaman yeterli olur?

Eğer yalnızca ürün kataloğu, temel ürün bilgileri ve yaklaşık fiyat verisi gerekiyorsa ve mağaza seviyesinde stok takibi yapmanız gerekmiyorsa, resmi Products API yeterli olabilir. API onayı almak genellikle birkaç gün sürer ve onaylı anahtar başına saniyede yaklaşık 5 istek oran limiti sunar. Canlı fiyat değişiklikleri veya mağaza stoku gerekiyorsa web kazıma kaçınılmazdır.

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