AliExpress Veri Kazıma Rehberi: Dropship ve Ürün Araştırması İçin Pratik Kılavuz

AliExpress'i veri kazımak için mobil API uç noktaları, anti-bot atlatma stratejileri ve residential proxy kullanımını adım adım anlatan teknik rehber. Dropship araçları ve ürün araştırma ekipleri için.

AliExpress Veri Kazıma Rehberi: Dropship ve Ürün Araştırması İçin Pratik Kılavuz

API mi HTML mi? AliExpress Kazımanın Temel Trade-off'u

AliExpress'ten veri çekmek istiyorsanız ilk kararınız şu olacak: tarayıcı HTML'sini mi parse edeceksiniz, yoksa mobil uygulamanın kullandığı JSON API'lerini mi hedefleyeceksiniz? Cevap neredeyse her zaman ikincisi. Masaüstü HTML'i sunucu-tarafta render edilir, sıklıkla değişir ve AliCAPTCHA ile korunan rate-limit'lere takılır. Mobil API uç noktaları ise daha yapılandırılmış, daha zengin veri döndüren ve doğru proxy ile çok daha stabil çalışan JSON yanıtları sunar.

Bu rehber, dropshipping araçları ve ürün araştırma ekipleri için AliExpress'in yapısını, anti-bot yığınını, mobil API'leri ve residential proxy ile veri kazıma stratejilerini pragmatik biçimde ele alıyor.

AliExpress Site Yapısı: Dört Ana Veri Kaynağı

AliExpress'te kazınabilir dört temel sayfa türü vardır. Her biri farklı veri noktaları sunar ve farklı scraping stratejisi gerektirir.

1. Arama Sayfaları

URL formatı: https://www.aliexpress.com/af/category/search.htm?SearchText=wireless+earbuds&page=1

Arama sayfaları ürün başlıkları, fiyatlar, indirim oranları, sipariş sayıları ve mağaza isimleri sunar. Ancak HTML yapısı sık değişir ve CSS sınıfları obfuscated olabilir. Daha güvenilir yol, mobil API'yi kullanmaktır.

2. Ürün Detay Sayfaları

URL formatı: https://www.aliexpress.com/item/1005006XXXXXX.html

Her ürün sayfası şu verileri barındırır:

  • Ürün başlığı ve açıklaması — genellikle h1.product-title-text veya //h1[@class='product-title-text'] selector'ü ile erişilir
  • Fiyat aralığı.product-price-value veya //span[contains(@class,'price-current')]
  • Varyant SKU'lar.sku-attr-list altındaki her varyant option'ı
  • Görseller.images-view-item img veya //div[@id='detail-gallery']//img
  • Satıcı bilgisi.store-name ve .seller-info .rating

3. Mağaza Sayfaları

URL formatı: https://www.aliexpress.com/store/912345678

Mağaza sayfaları satıcı reputation skorunu, toplam sipariş hacmini, mağaza kategorilerini ve featured ürünleri sunar. Dropship'çiler için satıcı güvenilirliği kritik olduğundan bu sayfalar değerlidir.

4. Hot-Product / Trend Beslemeleri

URL formatı: https://www.aliexpress.com/popular/wireless-earbuds.html

AliExpress'in "Popular" ve "Hot Products" sayfaları, platformun algoritmasının yükselişte olduğunu düşündüğü ürünleri sıralar. Dropship ürün araştırması için en değerli veri kaynağı budur.

Alibaba Grubu Anti-Bot Yığını

AliExpress, Alibaba'nın enterprise-grade anti-bot sistemleriyle korunur. Bunları anlamak, stratejinizi belirlemenin ilk adımıdır.

AliCAPTCHA (ncaptcha)

Alibaba'nın CAPTCHA sistemi, slider puzzle'lar ve davranışsal analiz kullanır. nc.aliexpress.com üzerinden yüklenir. Tek bir IP'den gelen anormal trafikte aktifleşir.

TLS Fingerprinting (JA3)

Alibaba'nın edge'leri, TLS handshake'inin JA3 hash'ini kontrol eder. Python requests kütüphanesinin varsayılan TLS fingerprint'i gerçek tarayıcılardan farklıdır ve bu, bot olarak işaretlenmenize neden olur. Çözüm: curl_cffi veya tls_client gibi impersonation kütüphaneleri kullanmak.

Device Fingerprinting

Mobil API'lere yapılan isteklerde x-sign, x-umt ve x-app-ver header'ları beklenir. Bu header'lar, istemci tarafında bir SDK tarafından hesaplanan HMAC imzalarıdır. Statik değerler kısa sürede blacklist'e alınır.

Rate Limiting Eşikleri

Gözlemlenen yaklaşık eşikler:

  • Tek IP'den ~80-120 istek/dakika sonrası CAPTCHA tetiklenir
  • Aynı /24 subnet'ten yoğun trafik = subnet-level throttling
  • Mobil API uç noktaları biraz daha toleranslıdır (~150 req/dk)
  • Datacenter IP'ler residential IP'lere göre 5-10x daha hızlı bloklanır

Residential proxy kullanmak, AliExpress kazımada lüks değil zorunluluktur. Datacenter IP'lerle sürdürülebilir bir scraping pipeline kurmak neredeyse imkansızdır.

Mobil API Uç Noktaları: Masaüstü HTML'den Daha Zengin JSON

AliExpress mobil uygulaması, masaüstü sitesinden farklı API uç noktaları kullanır. Bu uç noktalar, HTML parse etme zahmetini ortadan kaldıran yapılandırılmış JSON döndürür.

Arama API'si

GET https://m.aliexpress.com/api/search/items
    ?keyword=wireless+earbuds
    &page=1
    &sortType=ordersDesc
    &country=US

sortType=ordersDesc parametresi en çok sipariş edilen ürünleri sıralar — dropship'çiler için altın değerinde.

Ürün Detay API'si

GET https://m.aliexpress.com/api/product/detail
    ?productId=1005006XXXXXX
    &country=US

Mağaza API'si

GET https://m.aliexpress.com/api/store/info
    ?storeId=912345678

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

{
  "data": {
    "productId": "1005006XXXXXX",
    "title": "TWS Wireless Earbuds Bluetooth 5.3...",
    "price": {
      "min": "8.99",
      "max": "15.49",
      "currency": "USD"
    },
    "orders": 12580,
    "rating": {
      "average": 4.7,
      "totalReviews": 3842
    },
    "skuList": [
      {
        "skuId": "120000XXX",
        "price": "8.99",
        "stock": 1560,
        "attributes": {"Color": "Black", "Size": "One Size"}
      }
    ],
    "shipping": {
      "toCountry": "US",
      "options": [
        {"method": "AliExpress Standard Shipping", "cost": "0.00", "days": "15-35"}
      ]
    },
    "seller": {
      "storeId": "912345678",
      "storeName": "TechGadgets Official",
      "positiveFeedback": 97.2
    }
  }
}

Bu JSON, HTML parse etmekle saatler alacak varyant SKU'ları, kargo maliyetleri ve satıcı skorunu tek bir yanıtta sunuyor.

Python ile Residential Proxy Altında Trend Ürün Keşfi

Aşağıdaki örnek, ProxyHat residential proxy'lerini kullanarak AliExpress mobil API'sinden en çok sipariş edilen ürünleri çeker. curl_cffi kullanıyoruz çünkü standart requests JA3 fingerprint'iyle bloklanır.

import asyncio
from curl_cffi.requests import AsyncSession
import json
import random
import time

PROXY_URL = "http://user-country-US:PASSWORD@gate.proxyhat.com:8080"

HEADERS = {
    "User-Agent": "AliApp(AE/8.53.0;Android12;Pixel 6)",
    "x-app-ver": "8.53.0",
    "x-platform": "android",
    "Accept": "application/json",
}

async def fetch_trending(keyword: str, pages: int = 5):
    """Fetch top-ordered products for a keyword."""
    products = []
    async with AsyncSession(impersonate="chrome110") as session:
        for page in range(1, pages + 1):
            url = (
                f"https://m.aliexpress.com/api/search/items"
                f"?keyword={keyword}"
                f"&page={page}"
                f"&sortType=ordersDesc"
                f"&country=US"
            )
            try:
                resp = await session.get(
                    url,
                    headers=HEADERS,
                    proxy=PROXY_URL,
                    timeout=15,
                )
                data = resp.json()
                items = data.get("data", {}).get("items", [])
                for item in items:
                    products.append({
                        "product_id": item.get("productId"),
                        "title": item.get("title"),
                        "price_min": item.get("price", {}).get("min"),
                        "orders": item.get("orders"),
                        "rating": item.get("rating", {}).get("average"),
                        "store_id": item.get("seller", {}).get("storeId"),
                    })
                print(f"  Sayfa {page}: {len(items)} ürün alındı")
            except Exception as e:
                print(f"  Sayfa {page} hatası: {e}")
                continue
            # Rate limit'e takılmamak için bekleme
            await asyncio.sleep(random.uniform(2.0, 4.0))
    return products


async def main():
    keywords = ["wireless earbuds", "phone holder", "led strip"]
    all_results = {}
    for kw in keywords:
        print(f"\n🔍 '{kw}' aranıyor...")
        results = await fetch_trending(kw, pages=3)
        all_results[kw] = results
        print(f"  Toplam: {len(results)} ürün")
        time.sleep(3)  # keyword arası bekleme

    # En çok sipariş edilen ürünleri sırala
    for kw, products in all_results.items():
        top = sorted(products, key=lambda x: x.get("orders", 0), reverse=True)[:5]
        print(f"\n🏆 {kw} — Top 5:")
        for p in top:
            print(f"  {p['orders']} sipariş | ${p['price_min']} | {p['title'][:60]}")

asyncio.run(main())

Bu script'te dikkat eden üç kritik nokta:

  • curl_cffi impersonation — JA3 fingerprint'i gerçek Chrome ile eşleştirir
  • Residential proxygate.proxyhat.com:8080 üzerinden US çıkışlı IP, AliExpress'in datacenter bloklamasını atlatır
  • Rastgele bekleme — İnsan davranışını taklit eder, rate limit tetiklemez

Varyant SKU'lar, Kargo Maliyeti ve Satıcı Reputasyonu

Varyant SKU Yönetimi

AliExpress ürünleri genellikle birden fazla varyant taşır (renk, boyut, paket vs.). Her varyantın kendi SKU ID'si, fiyatı ve stok durumu vardır. Ürün detay API'sindeki skuList dizisi bu bilgiyi doğrudan sunar:

for sku in product_data["data"]["skuList"]:
    print(
        f"SKU: {sku['skuId']} | "
        f"Fiyat: {sku['price']} | "
        f"Stok: {sku['stock']} | "
        f"Özellikler: {sku['attributes']}"
    )

Dropship araçları için her SKU'yu ayrı satır olarak kaydetmek, stok takibi ve fiyat karşılaştırması açısından kritiktir. Aynı ürünün farklı varyantları arasında %30+ fiyat farkı olabilir.

Kargo Maliyeti Tahmini

Kargo maliyeti, hedef ülkeye ve ürün ağırlığına göre dramatik şekilde değişir. Ürün detay API'si shipping objesi içinde hedef ülkeye göre kargo seçeneklerini döndürür:

  • AliExpress Standard Shipping — genellikle ücretsiz ama 15-35 gün
  • ePacket — ucuz, 7-20 gün (sadece belirli ülkeler)
  • DHL/FedEx — hızlı ama pahalı

API'ye &country=DE veya &country=US parametresini geçerek farklı pazarlar için kargo maliyetini hesaplayabilirsiniz. Dropship kar marjı hesaplamasında bu bilgi şarttır.

Satıcı Reputasyon Skorları

Mağaza API'si ve ürün detay API'si satıcı skorunu içerir. Dikkat edilmesi gereken metrikler:

  • positiveFeedback — %95+ ideal, %90 altı riskli
  • storeLevel — 1-5 arası mağaza seviyesi
  • totalOrders — toplam sipariş hacmi, satıcının ölçeğini gösterir
  • yearsOnPlatform — platformdaki yıl sayısı, uzun süre = güvenilir

Dropship için satıcı seçiminde pozitif feedback %96+, en az 2 yıllık geçmiş ve 1000+ sipariş barajını hedefleyin. Daha fazlası için web scraping kullanım senaryoları sayfamıza göz atın.

Veri Tazeliği ve Kazıma Kadansı

AliExpress'te veri ne sıklıkla değişir? Bu sorunun cevabı, scraping kadansınızı belirler.

Fiyat Değişim Sıklığı

  • Normal dönemlerde — günde 1-2 kez değişir
  • Süper indirim günlerinde (11.11, Black Friday) — saatlik değişim
  • Flash sale'lerde — dakikalık değişim

Stok Durumu

  • Popüler ürünlerde stok her saat güncellenebilir
  • Uzun kuyruk ürünlerde günlük güncelleme yeterlidir

Önerilen Kazıma Kadansı

Veri TürüKadansGerekçe
Trend ürün keşfiGünde 1-2 kezOrder sayıları günlük güncellenir
Fiyat takibi4-6 saatte birRakip fiyat değişimlerini yakalamak
Stok durumu2-4 saatte birOOS ürünleri listeden çıkarmak
Satıcı skorlarıHaftada 1Reputasyon yavaş değişir
Yeni ürün taramasıGünde 1Yeni listing'leri erken yakalamak

Bu kadansları uygularken toplam istek hacmini hesaplayın. Örneğin 10.000 ürünü 4 saatte bir fiyat takibi için günde ~60.000 istek gerekir. Bu hacimde tek bir IP seti yetmez; ProxyHat pricing sayfasından uygun planı seçerek residential proxy havuzunuzu ölçekleyin.

Karşılaştırma: Scraping Yaklaşımları

YaklaşımVeri ZenginliğiStabiliteHızMaliyet
Masaüstü HTML ParseDüşükDüşük (DOM değişir)YavaşDüşük
Mobil API (Residential Proxy)YüksekYüksekHızlıOrta
Mobil API (Datacenter Proxy)YüksekÇok DüşükHızlıDüşük
Alibaba Official APIOrtaYüksekOrtaYüksek (app fee)

Residential proxy + mobil API kombinasyonu, en iyi dengeyi sunar. Datacenter proxy'ler AliExpress'te hızla bloklanır; resmi API ise aylık çağrı limitleri ve onay süreciyle ekipleri yavaşlatır.

curl ile Hızlı Test

Python script yazmadan önce uç noktayı test etmek isterseniz:

curl -x http://user-country-US:PASSWORD@gate.proxyhat.com:8080 \
  -H "User-Agent: AliApp(AE/8.53.0;Android12;Pixel 6)" \
  -H "Accept: application/json" \
  "https://m.aliexpress.com/api/search/items?keyword=phone+holder&page=1&sortType=ordersDesc&country=US"

Etik ve Yasal Hususlar

AliExpress veri kazıma konusunda dikkat edilmesi gerekenler:

  • robots.txt — AliExpress'in robots.txt dosyası bazı yolları restrict eder; bunlara saygı gösterin
  • Hizmet Şartları — Platform ToS'u scraping'i yasaklayabilir; riskleri değerlendirin
  • Kişisel veri — Kullanıcı yorumlarındaki kişisel bilgiyi GDPR/KVKK kapsamında işleyin
  • Adil kullanım — Rate limit aşmayın, platformun altyapısını zorlamayın

Temel Çıkarımlar

  • Mobil API'yi tercih edin — HTML parse yerine yapılandırılmış JSON, daha az bakım ve daha zengin veri
  • Residential proxy zorunlu — Datacenter IP'ler AliExpress'te hızla bloklanır; ProxyHat residential proxy'leri gate.proxyhat.com:8080 üzerinden güvenilir çıkış sağlar
  • JA3 fingerprint'e dikkatrequests yerine curl_cffi veya tls_client kullanın
  • Varyant SKU'ları ayrı kaydedin — Her varyantın kendi fiyatı ve stoku vardır
  • Kadansı veri türüne göre ayarlayın — Fiyat için 4-6 saat, trend ürün için günlük, satıcı skoru için haftalık
  • Kargo maliyetini hedef ülkeye göre sorgulayın — Dropship kar marjı hesaplamasında kargo bilgisi kritik

AliExpress scraping pipeline'ınızı kurmaya hazırsanız, ProxyHat lokasyonlar sayfasından 190+ ülke çıkışlı residential proxy'lerimize göz atın ve ücretsiz deneme ile başlayın.

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