Proxy üzerinden Scrapy AutoThrottle: yuvalar ve gecikme
Hedef sitenin indirme yuvalarını proxy yollarından ayrı tutun ve gecikmeyi gözlenen istek yolu olarak yorumlayın.
Scrapy varsayılan olarak indirme yuvalarını isteğin URL'sinin alan adına göre atar. Bir isteğe HTTP proxy vermek o URL'yi proxy'nin ana bilgisayar adına dönüştürmez. Bu nedenle farklı sitelere yapılan istekler tek bir aracıyı paylaşırken farklı yuvaları koruyabilir.
AutoThrottle her yuvanın gecikmesini gözlenen indirme gecikmesine göre ayarlar. Standart alan adı başına eşzamanlılık sınırı ve en düşük indirme gecikmesi hâlâ geçerlidir.
Algoritmayı değiştirmeden önce gruplamayı denetleyin
Özel bir middleware request.meta["download_slot"] atayarak normal yuva seçimini geçersiz kılabilir. Bazı proxy eklentileri kendi gruplamalarını kullanır. İlgisiz siteler tek bir sınırlayıcıyı paylaşıyor gibi görünüyorsa bu ayarları inceleyin.
Tersine, her proxy için farklı bir yuva atamak birden çok proxy'nin aynı hedefe eşzamanlı olarak bağlanmasına izin verebilir. Bu, tarayıcının uyması gereken site geneli bir sınırı bozabilir. Yuva anahtarını korunan kaynağa göre seçin.
Gecikme kullandığınız yolu içerir
Scrapy gecikmeyi isteğin gönderilmesinden HTTP başlıklarının alınmasına kadar ölçer. Proxy üzerinden taşınan bir istek, aracının kuyruk ve iletme gecikmesini bu ölçüme dâhil edebilir. AutoThrottle yalnızca kaynağa ait ayrı bir işleme süresi elde etmez.
Eşzamanlılığı artırmak bu ölçümün siteyi yalıtmasını sağlayamaz. Her ikisi de önemli olduğunda hedefe nezaketi ve proxy kapasitesini ayrı sınırlar olarak tutun. Paylaşılan bir proxy hedef yuvaları genelinde ek eşzamanlılık bütçesine ihtiyaç duyabilir; her hedef kendi hız ilkesini korur.