lostyazilim
tr.link

ASP.Net Bot Yapımı Hakkında

3 Mesajlar 836 Okunma
acebozum
tr.link

Korucuoglu Korucuoglu WM Aracı Kullanıcı
  • Üyelik 28.02.2019
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad A** K**
  • Mesajlar 21
  • Beğeniler 11 / 3
  • Ticaret 0, (%0)
İyi Günler Arkadaşlar,

Fiyat karşılaştırma temalı bir ASP.Net MVC ile yazılmış bir sitem var. Sitemde bir ürüne ait 5 farklı sitedeki fiyatlar gösteriyorum. Bu sayı artabilir. Botu ben kendim yazdım. Verileri çekip database'ye atıyorum. Veri çekmede de bir sıkıntı yok.

Sıkıntı veritabanında bulunan tüm ürünleri (252 tane) güncelleyince başlıyor. Şöyle ki tüm ürünleri güncelleyince kısa sürede o sitelere ping attığımdan dolayı bazı sitelerde d-dos koruması devreye giriyor. Ve sonuç olarak korumaya giren sitelerde veri çekemiyorum.

Bunun önüne geçmek için bir sürü yöntem denedim. En sonunda sağlıklı bir yöntemi sanırım buldum. Şöyle ki;

ziyaretçi ürüne tıkladığında o ürün 24 saat içerisinde fiyatı güncellenmemiş ise ürünün fiyatını ziyaretçi kendi güncelleştiriyor. Yani onun ip adresinden 5 farklı siteye bağlanıp verileri çekiyorum. Bu sayede aynı ip'den çok fazla istek gitmediğinden dolayı d-dos devreye girmiyor. Yani ürünün fiyatını ziyaretçi güncelleştiriyor.

Burada sorunum şu: Bu mantıkla veri güncelleme ne kadar doğru? - İlerleyen zamanlarda kendisinden fiyat çektiğim bu siteler domain ban atabilirler mi?

Şimdiden Teşekkürler.
 

 

elektronikssl
webimgo

kyzaghan kyzaghan Lord of the Ninth Sky Kullanıcı
  • Üyelik 14.04.2017
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Destek Lideri
  • Konum İzmir
  • Ad Soyad İ** K**
  • Mesajlar 50
  • Beğeniler 7 / 18
  • Ticaret 0, (%0)
Merhaba,
Öncelikle aynı anda 252 tane ürün güncelleme pek sağlıklı değil, burada her ürüne son güncelleme tarihi atayabilirsin.
Güncelleme işlemini 1 saat, 2 saat güncellenmeyen ürünler üzerinden belirli aralıklarla çalıştırabilirsin, ayrıca kullanıcı ürün sayfasını açtığında, kullanıcı hissetmeyecek şekilde sadece o ürün için fiyat bilgisini çektirip güncelletebilirsin.

Bu durumda en az ziyaret edilen ürünler, en güncel olmayanlar olacak. Bu ürün sayısı yine fazla olursa aynı problemi yaşayacaksın. Benim tavsiyem, her güncelleme işleminden sonra araya belirli zaman ekleyip, sonrasında ürün ürün güncellemen. Çoğu site anlık aynı ip'den 10-15 istek gelince engellemeye başlıyor. Peki her saniye istek gönderirsen? bu durumda 250 ürün için 250 saniye beklemiş olursun. Pek sıkıntı olacağını düşünmüyorum.

Kod örneği veremiyorum hangi dilde yazdığını bilmediğim için ancak asp.net mvc de veya core'da ürünleri döngüye alıp, her çekme işleminden sonra Thread.Sleep(1000) tarzı bu kullanım ile çözülebilir gibi.

Not: Bu verdiğim örnek karşı sitenin güvenlik politikasına göre değişebilir veya geçersiz olabilir.
Not 2: Asp.net demişsin başlıkta, yeni fark ediyorum :) Thread.sleep örneği geçerli olacaktır.

İyi Akşamlar.
KaganSa

kişi bu mesajı beğendi.

Korucuoglu Korucuoglu WM Aracı Kullanıcı
  • Üyelik 28.02.2019
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad A** K**
  • Mesajlar 21
  • Beğeniler 11 / 3
  • Ticaret 0, (%0)
Çok teşekkür ediyorum :) Thread.Sleep(1000) komutu hiç aklıma gelmemişti çok mantıklı. :)
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al