• 26-04-2025, 12:57:13
    #1
    Merhaba,

    Örnek veriyorum alışveriş sitesinden ürünün stok ve fiyat değerini api ya da xml yerine link üzerinden her 10 saniyede bir çekmek ve aynı aralıkta kontrol ettirmek ortalama bir sunucu için sürdürülebilir bir durum mudur yoksa başka bir alternatif mi bulunmalıdır.
  • 26-04-2025, 13:00:12
    #2
    ucg adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Örnek veriyorum alışveriş sitesinden ürünün stok ve fiyat değerini api ya da xml yerine link üzerinden her 10 saniyede bir çekmek ve aynı aralıkta kontrol ettirmek ortalama bir sunucu için sürdürülebilir bir durum mudur yoksa başka bir alternatif mi bulunmalıdır.
    Bir problem olmaz her 10 saniyede istek atmaktan fakat bazen siteler WAF açtığında veri alamıyorsunuz.
  • 26-04-2025, 13:05:11
    #3
    Bu senaryoda — yani bir alışveriş sitesinden bir ürünün stok ve fiyat bilgisini her 10 saniyede bir link üzerinden çekmek istediğinde — durumun sürdürülebilir olup olmadığını birkaç açıdan değerlendirelim:

    1. Sunucu Açısından:
    Eğer kendi küçük/orta ölçekli bir sunucun varsa (örneğin VPS veya küçük bir dedicated sunucu), sadece tek bir ürün için her 10 saniyede bir çekim büyük bir yük oluşturmaz.

    Ancak çok sayıda ürün için veya çekilen sayfaların ağırlığı fazla ise (örneğin büyük HTML sayfaları, çok fazla veri), zamanla RAM, CPU ve network (trafik) kullanımı ciddi artış gösterir.

    Üstelik "çekmek" derken sadece sayfayı çekmek değil, içinden stok ve fiyat bilgilerini de parse etmek gerekiyor — bu da CPU ve RAM'e küçük de olsa bir ek yük getirir.

    Özetle:
    • Az sayıda ürün (örneğin 1-50 ürün) için problem olmaz. Yüzlerce ürün için ya sorgu süresini uzatmak gerekebilir ya da sunucuyu büyütmek gerekebilir.
    2. Hedef Site Açısından (Çektiğin Site):
    Çektiğin site, bu sık çekimlere karşı rate-limit, IP banı, captcha, 403 forbidden gibi savunmalar uygulayabilir.
    10 saniyede bir çekim çok agresif sayılır. Normalde 30 saniye, 1 dakika gibi aralıklar tercih edilir.
    Eğer site "bot detection" yapıyorsa, header bilgilerini, kullanıcı ajanı (User-Agent) gibi şeyleri gerçek bir tarayıcı gibi göstermek gerekebilir.

    3. Alternatif Yollar:
    • Resmi API kullanmak: Eğer hedef site API sunuyorsa mutlaka onu kullan. API ile veri çekmek hem sunucuna hem de hedef siteye daha az yük bindirir. Push mekanizması: Eğer mümkünse, ürünün değişiminde tetiklenecek bir webhook ya da başka bir tetikleme sistemi kurulabilir (genellikle site sahibiyle anlaşma gerektirir). Zamanı uzatmak: Her 10 saniye yerine 30-60 saniyede bir çekim çok daha "doğal" olur. Event-based çekim: Değişim ihtimali düşükse sabit aralıklar yerine değişim olduğunda çekmek de düşünülebilir.
    -
    Kaynak: ChatGPT
  • 26-04-2025, 14:01:46
    #4
    Platin üye
    Cimri gibi bir platform kuracaksınız sanırım. Bu tarz işlemlerde sunucudan ziyade karşı tarafın isteği reddetme problemi olur.

    Her saniye milyonlarca istek atacağınız için direkt ip ban atarlar. Sürdürebilir olması için daha uzun süreli istekler yapılabilir her bir saat de bir gibi. Ya da bir kez tüm ürünleri çekin, kullanıcı her sorgu yaptığında tekrar istek gönderin. Eğer bir önceki istek x dakika önce olduysa o veriyi gösterin gibi