Python ile Amazon Best Sellers’ı Scrape Etmenin 4 Yolunu Denedim ve ...

Son güncelleme: April 17, 2026

Geçen hafta sonu, Amazon Best Sellers sayfasını dört farklı yöntemle scrape etmeye çalışırken bir pota kahve bitirdim. İkisi gerçekten iyi çalıştı, biri IP’min banlanmasına ramak kala sonuç verdi, biri ise kelimenin tam anlamıyla iki tık sürdü. İşte öğrendiğim her şey.

Amazon devasa bir pazar yeri — , ve saatlik güncellenen bir Best Sellers Rank (BSR) sistemi var. FBA ürün araştırması yapıyorsanız, rakip fiyat analizi yürütüyorsanız ya da sadece rakiplerinizden önce trendleri yakalamaya çalışıyorsanız, Best Seller verileri altın değerinde.

Ama bu veriyi Amazon’dan çekip bir tabloya aktarmak? İşin ilginç kısmı burada başlıyor. requests + BeautifulSoup, Selenium, bir scraping API’si ve (bizim kod yazmadan çalışan yapay zekâ destekli web scraper’ımız) yöntemlerini test ettim; hangisi gerçekten iş görüyor, hangisi sizi CAPTCHA sayfasına bakakalır bırakıyor görmek için.

Amazon Best Sellers Nedir ve Neden Umursamalısınız?

Amazon Best Sellers Rank (BSR), Amazon’un gerçek zamanlı liderlik tablosudur; ürünleri her kategori içinde satış hacmine göre sıralar. Bunu, hem son hem de geçmiş satış verilerine dayalı, saatlik güncellenen bir popülerlik yarışı gibi düşünebilirsiniz. Amazon bunu şöyle açıklıyor:

"Amazon Best Sellers hesaplaması, Amazon satışlarına dayanır ve Amazon’da satılan her ürünün yakın ve geçmiş satışlarını yansıtmak için saatlik olarak güncellenir." —

Best Sellers sayfası, kategori başına ilk 100 ürünü gösterir ve bunları 50’şer üründen iki sayfaya böler. 1. sayfa #1–50, 2. sayfa #51–100 aralığını kapsar. Amazon, sayfa görüntülemelerinin ve müşteri yorumlarının BSR’yi ETKİLEMEDİĞİNİ doğruladı — tamamen satış odaklıdır.

Bu veriye kim ihtiyaç duyar? FBA için ürün tarayan e-ticaret satıcıları, rekabet istihbaratı oluşturan satış ekipleri, fiyat trendlerini izleyen operasyon ekipleri ve kategori büyümesini takip eden pazar araştırmacıları. Benim deneyimime göre, Amazon’da satış yapan ya da Amazon’la rekabet eden herkes er ya da geç bu veriye bir tabloda ihtiyaç duyuyor.

Neden Amazon Best Sellers’ı Python ile Scrape Etmelisiniz?

Manuel ürün araştırması zaman yutan bir iştir. Bir , çalışanların haftada 9,3 saatlerini yalnızca bilgi arama ve toplama için harcadığını gösteriyor. E-ticaret ekipleri için bu, Amazon sayfalarında tek tek dolaşıp ürün isimlerini ve fiyatlarını kopyalayarak tabloya yapıştırmak demek — sonra aynı işlemi gelecek hafta yeniden yapmak.

Aşağıda, Best Sellers verisini çekmeyi değerli kılan kullanım senaryolarına hızlı bir bakış var:

Kullanım SenaryosuElde Ettiğiniz VeriKimler İçin Faydalı
FBA Ürün AraştırmasıBSR ve yorum sayısına göre yüksek talep, düşük rekabetli ürünleri belirlemeAmazon satıcıları, dropshipper'lar
Rekabetçi FiyatlandırmaKategorinizdeki öne çıkan ürünlerin fiyat değişimlerini izlemeE-ticaret ekipleri, fiyat analistleri
Pazar Trendi TakibiYükselen kategorileri ve mevsimsel değişimleri fark etmeÜrün yöneticileri, pazar araştırmacıları
Lead OluşturmaEn çok satan markaların ve ürün serilerinin listesini çıkarmaSatış ekipleri, B2B outreach ekipleri
Rakip AnaliziÜrünlerinizi kategori liderleriyle karşılaştırmaMarka yöneticileri, strateji ekipleri

Yatırım getirisi somut: tarafından yapılan ve 2.700 ticaret profesyonelini kapsayan bir ankete göre, yapay zekâ araçları e-ticaret profesyonellerine haftada ortalama kazandırıyor. Otomatik fiyat takibi kullanan satıcılar Buy Box’ı zamanın elinde tutarken, manuel takip edenlerde bu oran 42%. Bu da fiyat değişimlerine daha hızlı tepki vermenin sağladığı %37’lik satış artışı anlamına geliyor.

Python ile Amazon Best Sellers’ı Scrape Etmenin 4 Yolu: Hızlı Karşılaştırma

Adım adım anlatıma geçmeden önce, keşke testlere başlamadan önce elimde olsaydı dediğim karşılaştırma burada. Bu tablo, durumunuza uygun yöntemi seçmenize yardımcı olacak:

Kriterrequests + BS4SeleniumScraping API (ör. Scrape.do)Thunderbit (Kod Yok)
Kurulum ZorluğuOrtaYüksek (driver, tarayıcı)Düşük (API anahtarı)Çok düşük (Chrome uzantısı)
Lazy Loading DesteğiHayırEvet (kaydırma simülasyonu)Evet (render edilmiş HTML)Evet (render etmeyi AI yönetir)
Anti-Bot DayanıklılığıDüşük (IP ban)Orta (tespit edilebilir)Yüksek (dönen proxy’ler)Yüksek (cloud + browser modları)
Bakım YüküYüksek (selector’lar bozulur)Yüksek (driver güncellemeleri + selector’lar)DüşükÇok düşük (AI düzen değişikliklerine uyum sağlar)
MaliyetÜcretsizÜcretsizÜcretli (istek başına)Ücretsiz katman + ücretli planlar
En Uygun Olduğu DurumTek seferlik scrape, öğrenmeJS ağırlıklı sayfalar, giriş gerektiren yerlerÖlçek / üretim ortamıGeliştirici olmayanlar, hızlı araştırma, düzenli izleme

Python scraping temellerini öğrenmek istiyorsanız, 1. ya da 2. yöntemle başlayın. Üretim ölçeğinde güvenilirlik istiyorsanız 3. yöntemi seçin. Kod yazmadan iki tıkla sonuç istiyorsanız doğrudan 4. yönteme geçin.

Başlamadan Önce

  • Zorluk Seviyesi: Başlangıç–Orta (yönteme bağlı olarak)
  • Gerekli Süre: Thunderbit için yaklaşık 15 dakika, Python yöntemleri için yaklaşık 45 dakika
  • Gerekenler: Python 3.8+ (1–3. yöntemler için), Chrome tarayıcısı, (4. yöntem için) ve hedef Amazon Best Sellers kategori URL’si

Yöntem 1: requests + BeautifulSoup ile Amazon Best Sellers Scrape Etme

Bu, hafif ve yeni başlayan dostu bir yaklaşım — tarayıcı otomasyonu yok, yalnızca HTTP istekleri ve HTML ayrıştırma var. Ayrıca bana Amazon’un scraping karşıtı savunmaları hakkında en çok şeyi öğreten yöntem de buydu.

1. Adım: Ortamı Kurun

Gerekli paketleri yükleyin:

1pip install requests beautifulsoup4 pandas

Sonra import’ları ayarlayın:

1import requests
2from bs4 import BeautifulSoup
3import pandas as pd
4import random
5import time

2. Adım: Gerçekçi Header’larla İstek Gönderin

Amazon, bot gibi görünen istekleri engeller. En temel savunma, gerçek bir tarayıcıyı taklit eden User-Agent başlığıdır. İşte güncel ve gerçekçi User-Agent dizelerinden oluşan bir havuz içeren örnek bir parça (kaynak: , Mart 2026):

1USER_AGENTS = [
2    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
3    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
4    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
5    "Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:149.0) Gecko/20100101 Firefox/149.0",
6    "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15",
7]
8headers = {"User-Agent": random.choice(USER_AGENTS)}
9url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
10response = requests.get(url, headers=headers)
11print(response.status_code)  # Should be 200

200 durum kodu görürseniz yolundasınız. 503 görürseniz ya da CAPTCHA sayfasına yönlendirilirseniz, Amazon isteğinizi işaretlemiştir.

3. Adım: BeautifulSoup ile Ürün Verisini Ayrıştırın

Tarayıcınızın DevTools aracını kullanarak Amazon sayfasının HTML’ini inceleyin (sağ tık → Inspect). Ürün kapsayıcıları gridItemRoot ID’sini kullanır. Bu kapsayıcıların içinde ürün adı, fiyat, puan ve URL bulunur.

1soup = BeautifulSoup(response.text, "html.parser")
2products = []
3for item in soup.find_all("div", id="gridItemRoot"):
4    title_tag = item.find("div", class_="_cDEzb_p13n-sc-css-line-clamp-3_g3dy1")
5    price_tag = item.find("span", class_="_cDEzb_p13n-sc-price_3mJ9Z")
6    link_tag = item.find("a", class_="a-link-normal")
7    title = title_tag.get_text(strip=True) if title_tag else "N/A"
8    price = price_tag.get_text(strip=True) if price_tag else "N/A"
9    url = "https://www.amazon.com" + link_tag["href"] if link_tag else "N/A"
10    products.append({"Title": title, "Price": price, "URL": url})

Uyarı: _cDEzb_ ile başlayan sınıf adları, Amazon’un periyodik olarak yeniden ürettiği CSS module hash’leridir. gridItemRoot ID’si ve a-link-normal sınıfı daha stabildir; yine de scraper’ı çalıştırmadan önce selector’ları mutlaka DevTools ile doğrulayın.

4. Adım: CSV’ye Aktarın

1df = pd.DataFrame(products)
2df.to_csv("amazon_best_sellers.csv", index=False)
3print(f"Scraped {len(products)} products")

Ne Beklemelisiniz — ve Neler Yanlış Gider?

Testimde bu yöntem 50 yerine yaklaşık 30 ürün döndürdü. Bu kod hatası değil — Amazon’un lazy loading davranışı. İlk sayfa yüklemesinde yalnızca yaklaşık 30 ürün render ediliyor; geri kalanlar JavaScript çalıştıktan sonra kaydırmayla görünüyor ve requests bunu yönetemez.

Diğer sınırlamalar:

  • Proxy rotasyonu olmadan IP ban çok hızlı gelir (art arda yaklaşık 15 istekte engellendim)
  • Amazon sayfa yerleşimini güncelledikçe CSS selector’lar bozulur — ve bunu düzenli olarak yapıyorlar
  • Varsayılan olarak sayfalama desteği yok

Python scraping öğrenmek için bu yaklaşım çok iyi. Üretim kullanımı içinse kırılgan.

Yöntem 2: Selenium ile Amazon Best Sellers Scrape Etme

Selenium, lazy-loading sorununu gerçek bir tarayıcı çalıştırarak çözer — kurulumu daha ağırdır ama sayfa başına 50 ürünün tamamını alır.

1. Adım: Selenium’u Yükleyin

1pip install selenium pandas

Güzel haber: Selenium 4.6+ ile artık webdriver-manager kullanmanıza gerek yok. Selenium Manager, driver indirme işini otomatik yönetiyor.

1from selenium import webdriver
2from selenium.webdriver.chrome.options import Options
3from selenium.webdriver.common.by import By
4from selenium.webdriver.common.keys import Keys
5import time
6import pandas as pd
7options = Options()
8options.add_argument("--headless=new")
9options.add_argument("--window-size=1920,1080")
10options.add_argument("--disable-blink-features=AutomationControlled")
11driver = webdriver.Chrome(options=options)

--headless=new bayrağı (Chrome 109+ ile geldi), headed Chrome ile aynı render hattını kullanır ve Amazon’un bunu tespit etmesini zorlaştırır.

2. Adım: Lazy Loading’i Aşağıya Kaydırarak Geçin

Selenium’u kurulum zahmetine değdiren adım bu. Amazon Best Sellers ilk anda yalnızca yaklaşık 30 ürün yükler — geri kalanı kaydırınca gelir.

1def scroll_page(driver, scrolls=5, delay=2):
2    for _ in range(scrolls):
3        driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
4        time.sleep(delay)
5driver.get("https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/")
6time.sleep(3)
7scroll_page(driver)

Kaydırmadan sonra 50 ürünün tamamı DOM içinde render edilmiş olmalı. Benim testimde 2 saniyelik gecikmeyle 5 sayfa-aşağı kaydırma yeterli oldu, ancak bağlantı hızınıza göre ayarlamanız gerekebilir.

3. Adım: Ürün Verisini Çekin

1items = driver.find_elements(By.ID, "gridItemRoot")
2products = []
3for item in items:
4    try:
5        title = item.find_element(By.CSS_SELECTOR, "div._cDEzb_p13n-sc-css-line-clamp-3_g3dy1").text
6    except:
7        title = "N/A"
8    try:
9        price = item.find_element(By.CSS_SELECTOR, "span._cDEzb_p13n-sc-price_3mJ9Z").text
10    except:
11        price = "N/A"
12    try:
13        url = item.find_element(By.CSS_SELECTOR, "a.a-link-normal").get_attribute("href")
14    except:
15        url = "N/A"
16    products.append({"Title": title, "Price": price, "URL": url})

Her alanı try/except içine almak önemli — bazı ürünler stokta olmayabilir ya da alan eksik olabilir; tek bir bozuk elemanın tüm scrape işlemini çökertmesini istemezsiniz.

4. Adım: Sayfalama İşlemini Yönetin

Amazon, 100 Best Sellers ürününü farklı URL yapılarıyla iki sayfaya böler:

1urls = [
2    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/",
3    "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_2_electronics?_encoding=UTF8&pg=2"
4]
5all_products = []
6for url in urls:
7    driver.get(url)
8    time.sleep(3)
9    scroll_page(driver)
10    # ... yukarıdaki gibi ürünleri çıkar ...
11    all_products.extend(products)
12driver.quit()

Ne Beklemelisiniz

Testimde Selenium sayfa başına 50 ürünün tamamını yakaladı — requests + BS4’ye göre net bir kazanç. Dezavantajı: sayfa başına yaklaşık 45 saniye sürdü (kaydırma gecikmeleri dahil) ve proxy rotasyonu olmadan fazla kez çalıştırınca yine işaretlendim. Anti-detection bayraklarına rağmen Selenium da Amazon’un bot algılama sistemince tespit edilebilir — ciddi ölçek için ek önlemler gerekir (aşağıdaki Anti-Ban rehberine bakın).

Diğer can sıkıcı noktalar:

  • WebDriver sürüm uyumsuzlukları hâlâ ara sıra yaşanıyor, ancak Selenium Manager bunu çok daha az görünür hale getirdi
  • Amazon DOM’unu değiştirdiğinde CSS selector’ların güncellenmesi gerekiyor
  • Bellek kullanımı yüksek — her tarayıcı örneği 200–400MB RAM tüketiyor

Yöntem 3: Scraping API ile Amazon Best Sellers Scrape Etme

Scraping API’leri, "zor kısmı başkası halletsin" yaklaşımıdır. Scrape.do, Oxylabs ve ScrapingBee gibi servisler proxy rotasyonu, JavaScript render etme ve anti-bot önlemlerini yönetir — siz yalnızca bir URL gönderirsiniz, HTML ya da JSON geri alırsınız.

Nasıl Çalışır?

Hedef URL’nizi API uç noktasına gönderirsiniz. API, kendi altyapısında gerçek bir tarayıcıyla sayfayı render eder, proxy’leri döndürür, CAPTCHA’ları yönetir ve temiz HTML döndürür. Ardından dönen HTML’yi her zamanki gibi BeautifulSoup ile ayrıştırırsınız.

1. Adım: API Üzerinden İstek Gönderin

Scrape.do kullanan bir örnek aşağıda var (fiyatlandırma 150.000 kredi için aylık $29’dan başlıyor; 1 kredi = render durumundan bağımsız 1 istek):

1import requests
2from bs4 import BeautifulSoup
3api_token = "YOUR_API_TOKEN"
4target_url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
5api_url = f"https://api.scrape.do?token={api_token}&url={target_url}&render=true&geoCode=us"
6response = requests.get(api_url)
7soup = BeautifulSoup(response.text, "html.parser")

Buradan sonrası 1. yöntemle aynıdır — aynı selector’lar, aynı çıkarım mantığı.

Fiyat Gerçekleri

Büyük API sağlayıcılarının Amazon istekleri için en iyi oranlarıyla 1.000 istek başına ücretleri aşağıda:

Sağlayıcı1.000 İstek Başına MaliyetNotlar
Scrape.do~$0.19Sabit oran, kredi çarpanı yok
Oxylabs~$1.80JS render için 5x çarpan
ScrapingBee~$4.90Premium özelliklerde 5–25x çarpan
Bright Data~$5.00+En kapsamlı veri (ürün başına 686 alan) ama en yavaş (~66 sn/istek)

Artılar ve Eksiler

Artılar: Yüksek güvenilirlik, üst düzey sağlayıcılarda Amazon için , driver bakımı yok, anti-bot süreçlerini otomatik yönetir, ölçeklenebilir.

Eksiler: İstek başına ücretli (ölçek büyüdükçe maliyet artar), yine de ayrıştırma kodu yazmanız gerekir, CSS selector değişimlerine hâlâ açıktır. Aylık 100.000 sayfa için toplam maliyet farkı dramatik olabilir: kendi çözümünüzü geliştirmek üç yılda yaklaşık tutarken, bir sağlayıcı kullanmak $293.000 civarında olur — %71 tasarruf.

Başabaş noktası genellikle ayda 500K–1M istek civarıdır. Bunun altında, API’nin sağladığı zaman tasarrufu maliyet farkını fazlasıyla dengeler.

Yöntem 4: Thunderbit ile Amazon Best Sellers Scrape Etme (Python Gerekmez)

Açık konuşayım: Thunderbit’te çalışıyorum, dolayısıyla bu bölümü bu bağlamla okuyun. Yine de dört yöntemi peş peşe gerçekten test ettim ve veriye ulaşma süresi açısından fark oldukça çarpıcıydı.

, Chrome uzantısı olarak çalışan bir yapay zekâ web scraper’ıdır. Temel fikir şu: CSS selector yazmak ya da Python kodu oluşturmak yerine, AI sayfayı okur ve hangi verinin çekileceğine karar verir. Amazon Best Sellers özelinde Thunderbit, tek tıkla çalışan hazır şablonlara sahiptir.

1. Adım: Thunderbit Chrome Extension’ı Kurun

sayfasına gidin ve "Add to Chrome" butonuna tıklayın. Ücretsiz bir hesap açın — ücretsiz plan, bunu denemeniz için yeterli kredi sağlar.

2. Adım: Amazon Best Sellers Sayfasına Gidin

Chrome’da herhangi bir Amazon Best Sellers kategori sayfasını açın. Örneğin: https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/

3. Adım: "AI Suggest Fields" Butonuna Tıklayın

Thunderbit yan panelini açın ve "AI Suggest Fields" butonuna tıklayın. AI, sayfa yapısını analiz eder ve şu sütunları önerir: Product Name, Price, Rating, Image URL, Vendor, Product URL ve Rank. Testimde ilgili tüm alanları yaklaşık 3 saniye içinde doğru biçimde tespit etti.

amazon-thunderbit-product-data.webp

Sütunların adını değiştirebilir, silebilir veya yenilerini ekleyebilirsiniz. Hatta her alan için özel AI komutları da ekleyebilirsiniz — örneğin her ürüne kategori etiketi eklemek için "Electronics/Apparel/Home olarak sınıflandır" gibi.

4. Adım: "Scrape" Butonuna Basın

"Scrape" butonuna tıklayın. Thunderbit, sayfadaki tüm ürün verileriyle yapılandırılmış bir tablo doldurur. Cloud modunda, aynı anda 50 sayfaya kadar paralel işlem yapabilir; lazy loading ve sayfalama süreçlerini otomatik yönetir.

5. Adım: Ücretsiz Dışa Aktarın

"Export" butonuna tıklayın ve hedefinizi seçin: Excel, Google Sheets, Airtable ya da Notion. Tüm planlarda dışa aktarma ücretsizdir — gizli ücret yok.

product-data-export.webp

Tüm süreç, sayfayı açmaktan eksiksiz bir tablo elde etmeye kadar bende yaklaşık 90 saniye sürdü. Karşılaştırma için: 1. yöntem yaklaşık 20 dakika sürdü (lazy loading sorununu ayıklama dahil), 2. yöntem yaklaşık 35 dakika sürdü (Selenium kurulumu dahil), 3. yöntem ise yaklaşık 15 dakika sürdü (API hesabı açma dahil).

Thunderbit Amazon’la Neden İyi Çalışıyor?

AI her seferinde sayfayı taze okuduğu için, düzen değişikliklerine otomatik uyum sağlar — bakım gerektiren CSS selector’lar yoktur. Bu, scraping forumlarında en sık görülen şikâyeti doğrudan çözer: "Basit bir web scraper yetmez, eleman değişiklikleri için çok fazla 'yakalama' eklemeniz gerekir." Amazon DOM’unu değiştirdiğinde (ki bunu düzenli yapıyor), sizin bir şey güncellemeniz gerekmez.

Cloud scraping modu, proxy rotasyonu, render etme ve anti-bot önlemlerini görünmez biçimde yönetir. "Kur ve çalışsın" çözümü isteyen kullanıcılar için bu, tüm ban derdini ortadan kaldırır.

Anti-Ban Oyun Planı: Amazon Tarafından Engellenmemek İçin Ne Yapmalı?

Amazon’un bot tespiti oldukça agresiftir. Test sırasında IP’min geçici olarak engellendiğini gördüm; forum kullanıcıları da benzer şeyler bildiriyor: "heryerde hatalar, amazon beni ana sayfaya yönlendirmeye başladı bile." Python yoluna gidecekseniz (1–3. yöntemler), bu bölüm kritik önemdedir.

İşte temel düzeyden ileri düzeye sıralanmış çok katmanlı bir strateji:

1. User-Agent Dizelerini Döndürün

Aynı User-Agent’ı tekrar tekrar göndermek kırmızı bayraktır. 1. yöntem kod örneğindeki 5+ dize havuzunu kullanın ve her istek için rastgele birini seçin:

1headers = {"User-Agent": random.choice(USER_AGENTS)}

2. İstekler Arasına Rastgele Gecikme Ekleyin

Sabit gecikmeler tespit edilebilir (örüntü oluşturur). Rastgele olanlar daha güvenlidir:

1time.sleep(random.uniform(2, 5))

2–5 saniyelik aralıkların küçük partilerde (50 isteğin altında) işleri gizli tutmaya yardımcı olduğunu gördüm. Daha büyük işler için bunu 3–7 saniyeye çıkarın.

3. Proxy Rotasyonu Kullanın

Asıl önemli kısım bu. , residential proxy’lerin Amazon’da ortalama yaklaşık %94 başarı sağladığını, datacenter proxy’lerde ise bunun yaklaşık %59 olduğunu gösteriyor — arada 35 puan fark var. Amazon’un tespit sistemi TLS fingerprinting, davranış analizi ve IP başına hız limitleme kullanır; bu yüzden standart datacenter IP’leri saniyeler içinde işaretlenir.

Residential proxy’ler daha pahalıdır (sağlayıcıya bağlı olarak GB başına $2–$12), ancak çok daha güvenilirdir. Kod örneği:

1proxies = {
2    "http": "http://user:pass@residential-proxy.example.com:8080",
3    "https": "http://user:pass@residential-proxy.example.com:8080"
4}
5response = requests.get(url, headers=headers, proxies=proxies)

4. Tarayıcı Parmak İzini Güçlendirin (Selenium)

1options.add_argument('--disable-blink-features=AutomationControlled')
2options.add_experimental_option("excludeSwitches", ["enable-automation"])
3options.add_experimental_option('useAutomationExtension', False)
4# Driver kurulumundan sonra navigator.webdriver bayrağını kaldırın
5driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
6    'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
7})

5. Oturumları ve Çerezleri Yönetin

Çerezleri istekler arasında saklamak, scraper’ınızı gerçek bir kullanıcı oturumuna daha çok benzetir:

1session = requests.Session()
2# Gerçekçi çerezler almak için önce ana sayfayı ziyaret edin
3session.get("https://www.amazon.com", headers=headers)
4time.sleep(2)
5# Sonra hedef sayfayı scrape edin
6response = session.get(target_url, headers=headers)

6. Tüm Bu Uğraşı Atlayacak Zaman Geldiğinde

Bunların hiçbirini yönetmek istemeyen kullanıcılar için Thunderbit’in cloud scraping’i proxy rotasyonu, render etme ve anti-bot önlemlerini otomatik olarak ele alır. Scraping API’leri de bu konuların çoğunu kutudan çıktığı haliyle yönetir. Benim deneyimimde, anti-ban sorunlarını çözmek için harcanan zaman, çoğu zaman gerçek scraping kodunu yazma süresini aşar — bu yüzden "kur ve çalışsın" yaklaşımının gerçek bir yatırım getirisi var.

Alt Sayfa Zenginleştirme: Daha Zengin Veri İçin Ürün Detay Sayfalarını Scrape Etme

Best Sellers listeleme sayfası yalnızca temel bilgileri gösterir — başlık, fiyat, puan, sıra. Ama FBA araştırması için asıl değer tek tek ürün detay sayfalarındadır. Yalnızca listelemeyi scrape ederseniz kaçırdığınız şeyler şunlardır:

AlanListeleme SayfasıÜrün Detay Sayfası
Ürün Adı
Fiyat
Puan
BSR Sırası✅ (alt kategori sıralarıyla birlikte)
Marka
ASIN
İlk Kullanıma Sunulma Tarihi
Boyutlar/Ağırlık
Satıcı Sayısı
Madde Madde Özellikler
Buy Box Sahibi

Özellikle "İlk Kullanıma Sunulma Tarihi" alanı çok değerlidir — bir ürünün ne kadar süredir piyasada olduğunu gösterir ve rekabet analizi için önemli bir sinyaldir. Satıcı sayısı ve Buy Box sahibini bilmek de bir ürün nişine girmenin mantıklı olup olmadığını anlamanıza yardım eder (eğer Amazon’un kendisi Buy Box payının %30’undan fazlasını tutuyorsa rekabet etmek son derece zordur).

Python Yaklaşımı: Ürün URL’leri Üzerinde Döngü Kurma

Liste sayfasından ürün URL’lerini topladıktan sonra, her biri için bir gecikmeyle ilerleyin:

1for product in products:
2    time.sleep(random.uniform(3, 6))
3    detail_response = session.get(product["URL"], headers={"User-Agent": random.choice(USER_AGENTS)})
4    detail_soup = BeautifulSoup(detail_response.text, "html.parser")
5    # Markayı çıkar
6    brand_tag = detail_soup.find("a", id="bylineInfo")
7    product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
8    # ASIN’i sayfa kaynağından ya da URL’den çıkar
9    # İlk Kullanıma Sunulma Tarihi’ni ürün detay tablosundan çıkar
10    # ... ek alanlar ...

Açık uyarı: 100 bireysel ürün sayfasına vurmak ban riskinizi ciddi biçimde artırır. Proxy rotasyonu ve daha uzun gecikmeler için bütçe ayırın.

Thunderbit Yaklaşımı: Tek Tıkla Alt Sayfa Scrape

Liste sayfasını tabloya aktardıktan sonra Thunderbit’te "Scrape Subpages" seçeneğine tıklayın. AI, her ürün URL’sini ziyaret eder ve tabloyu marka, ASIN, teknik özellikler, özellikler gibi ek sütunlarla otomatik zenginleştirir. Ek kod, selector ya da kurulum gerekmez. Bu özellikle tedarik kararları için tam resmi görmek isteyen ama detay sayfası ayrıştırıcısı yazmak istemeyen e-ticaret ekipleri için çok kullanışlıdır.

Tekrarlayan Scrape İşlemlerini Otomatikleştirme: Best Sellers’ı Zaman İçinde İzleme

Tek seferlik bir scrape faydalıdır, ancak sürekli izleme gerçek rekabet avantajının doğduğu yerdir. Hangi ürünlerin yükselip hangilerinin düştüğünü takip etmek, trendleri erken yakalamak ve fiyat değişimlerini haftalar ya da aylar boyunca izlemek — bunlar sıradan araştırmayı veri odaklı karar almadan ayırır.

Python Yaklaşımı: Cron ile Zamanlama

Linux/Mac üzerinde Python betiğinizi cron ile zamanlayabilirsiniz. Her gün sabah 8’de çalışacak bir job için crontab girdisi şöyle olur:

10 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1

Her Pazartesi sabah 9’da çalışacak haftalık job için:

10 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1

Windows’ta aynı işi Task Scheduler ile yapabilirsiniz. Bilgisayarınızı açık tutmadan sürekli zamanlama için VPS ya da AWS Lambda’ya dağıtım yapabilirsiniz — ancak bu da altyapı karmaşıklığı ekler.

Başarısız çalışmaları yakalamak için loglama ve hata bildirimleri ekleyin. Scraper’ınızın iki hafta önce sessizce bozulduğunu sonradan fark etmekten daha kötü bir şey yok.

Thunderbit Yaklaşımı: Doğal Dilde Scheduled Scraper

Thunderbit’in Scheduled Scraper özelliği, aralığı doğal dilde anlatmanıza izin verir — "her Pazartesi sabah 9’da" ya da "her gün sabah 8’de" yazarsınız, AI bunu zamanlama olarak yorumlar. Scrape’ler Thunderbit’in cloud sunucularında çalışır (tarayıcı ya da bilgisayarın açık kalması gerekmez) ve veriler otomatik olarak Google Sheets ya da Airtable’a aktarılır. Bu, DevOps yükü olmadan sürekli görünürlük isteyen operasyon ekipleri için ideal, canlı bir izleme panosu oluşturur.

Amazon’u Scrape Ederken Yasal ve Etik Hususlar

Avukat değilim; bu da hukuki tavsiye değildir. Ama bir scraping rehberinde yasal tabloyu görmezden gelmek sorumsuzluk olur — forum kullanıcıları özellikle ToS endişelerini dile getiriyor ve haklılar.

Amazon’un robots.txt dosyası: 2026 itibarıyla Amazon’un robots.txt dosyasında 80+ özel Disallow yolu var, ancak /gp/bestsellers/ standart user agent’lar için açıkça engellenmiş değil. Bununla birlikte, 35+ AI’a özel user agent (ClaudeBot, GPTBot, Scrapy vb.) için genel bir Disallow: / uygulanıyor. Belirli bir engelin olmaması, Amazon’un scraping’i onayladığı anlamına gelmez.

Amazon’un Hizmet Şartları: Amazon’un metni (Mayıs 2025 güncellemesi) açıkça, yazılı izin olmadan "Amazon Websitesinin herhangi bir bölümüne erişmek, edinmek, kopyalamak veya izlemek için herhangi bir otomatik süreç ya da teknoloji kullanmayı" yasaklıyor. Bu teorik değil — Amazon, Kasım 2025’te yetkisiz otomatik erişim nedeniyle ve ön ihtiyati tedbir kazandı.

hiQ v. LinkedIn emsali: davasında (Dokuzuncu Daire, 2022), mahkeme kamuya açık verileri scrape etmenin Computer Fraud and Abuse Act’i ihlal etmesinin muhtemel olmadığını söyledi. Ancak hiQ sonunda uzlaştı ve scraping’i durdurmayı kabul etti — CFAA’da kazanmak, sözleşme ihlali iddialarına karşı koruma sağlamaz.

Pratik kurallar:

  • Yalnızca kamuya açık verileri scrape edin (fiyatlar, BSR, ürün başlıkları — PII değil)
  • Hız sınırlarına uyun ve sunucuları zorlamayın
  • Veriyi meşru rekabet istihbaratı için kullanın
  • Ölçekli scraping yapmadan önce kendi hukuk danışmanınıza danışın
  • artık kapsamlı gizlilik yasalarına sahip olduğunu unutmayın

Thunderbit’in cloud scraping’i standart tarayıcı benzeri istek örüntüleri kullanır, ancak uyumluluğu yine de kendi hukuk danışmanınızla doğrulamalısınız.

Hangi Yöntemi Kullanmalısınız? Hızlı Karar Rehberi

Kısa versiyon:

  • "Python öğreniyorum ve hafta sonu projesi arıyorum." → Yöntem 1 (requests + BeautifulSoup). HTTP istekleri, HTML ayrıştırma ve Amazon’un bot savunmaları hakkında çok şey öğrenirsiniz.
  • "JavaScript ağırlıklı sayfaları veya giriş oturumlarını scrape etmem gerekiyor." → Yöntem 2 (Selenium). Daha ağırdır ama dinamik içeriği yönetir.
  • "Üretim ortamında, ölçekli scrape yapıyorum." → Yöntem 3 (Scraping API). Proxy ve render işlerini başkasına bırakın. , ayda 500K isteğin altında API’leri avantajlı kılar.
  • "Geliştirici değilim ve 2 dakikada veri istiyorum." → Yöntem 4 (). Kod yok, selector yok, bakım yok.
  • "Sunucu yönetmeden sürekli izleme istiyorum." → Thunderbit Scheduled Scraper. Kurun ve unutun.

Sonuç ve Önemli Çıkarımlar

Bir hafta sonu süren testlerden sonra aklımda kalanlar şöyle:

requests + BeautifulSoup, öğrenme için harika; ancak lazy-loading sınırlaması (50 ürünün yalnızca yaklaşık 30’u) ve kırılgan CSS selector’lar nedeniyle üretimde pratik değil.

Selenium, lazy-loading sorununu çözüyor ve sayfa başına 50 ürünün tamamını yakalıyor; fakat yavaş, RAM tüketimi yüksek ve yine de Amazon’un bot savunmalarınca tespit edilebilir.

Scraping API’leri, üretim ölçeğinde scraping için en güvenilir seçeneği sunuyor — Amazon’da — ama maliyetler birikiyor ve yine de ayrıştırma kodu yazmanız gerekiyor.

Thunderbit ise veriye ulaşma süresinde açık ara en hızlı sonucu verdi. AI; düzen değişikliklerini, lazy loading’i, sayfalama işlemlerini ve anti-bot önlemlerini hiçbir ayar gerektirmeden yönetiyor. Teknik olmayan kullanıcılar ya da DevOps yükü olmadan tekrar eden veriye ihtiyaç duyan ekipler için en pratik seçenek bu.

En büyük ders ne? Amazon’un anti-bot savunmaları ve sık düzen değişiklikleri, uzun vadede bakım gerektirmeyen çözümleri en büyük zaman tasarrufu kaynağı haline getiriyor. Bozuk selector’ları düzeltmek ve proxy döndürmek için harcadığınız her saat, gerçek analize ayırmadığınız bir saat demek.

Kod yazmadan çalışan yaklaşımı denemek ister misiniz? , birkaç Best Sellers kategorisini scrape edip sonucu kendi gözlerinizle görmeniz için yeterli kredi sağlar. Python yolunu mu tercih ediyorsunuz? Yukarıdaki kod örnekleri başlangıç için yeterli olacaktır. Hangi yolu seçerseniz seçin, Amazon Best Seller verisini bir tarayıcı sekmesine bakıp kalmak yerine tabloda elde edeceksiniz.

Web scraping yaklaşımları hakkında daha fazla bilgi için , ve rehberlerimize göz atın. Ayrıca adım adım anlatımları izleyebilirsiniz.

Daha Fazla Öğrenin

İçindekiler

Thunderbit’i dene

Lead’leri ve diğer verileri sadece 2 tıkla çek. Yapay zeka destekli.

Thunderbit’i Al Ücretsiz
Yapay zeka ile veri çıkar
Verileri kolayca Google Sheets, Airtable veya Notion’a aktar
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week