प्रॉक्सी के ज़रिए Scrapy AutoThrottle: स्लॉट और विलंबता
लक्ष्य साइट के डाउनलोड स्लॉट को प्रॉक्सी रूट से अलग रखें और विलंबता को देखे गए अनुरोध पथ के रूप में समझें।
डिफ़ॉल्ट रूप से Scrapy अनुरोध URL के डोमेन से डाउनलोड स्लॉट निर्धारित करता है। किसी अनुरोध को HTTP प्रॉक्सी देने से वह URL प्रॉक्सी का होस्टनाम नहीं बन जाता। इसलिए अलग-अलग साइटों के अनुरोध एक ही मध्यस्थ साझा करते हुए भी अलग-अलग स्लॉट रख सकते हैं।
AutoThrottle देखी गई डाउनलोड विलंबता का उपयोग करके हर स्लॉट का विलंब समायोजित करता है। मानक प्रति-डोमेन समवर्ती सीमा और न्यूनतम डाउनलोड विलंब अब भी लागू हैं।
एल्गोरिद्म बदलने से पहले ग्रुपिंग जाँचें
एक कस्टम मिडलवेयर request.meta["download_slot"] असाइन कर सकता है, जो सामान्य स्लॉट चयन को बदल देता है। कुछ प्रॉक्सी एक्सटेंशन अपनी अलग ग्रुपिंग इस्तेमाल करते हैं। अगर असंबंधित साइटें एक ही थ्रॉटल साझा करती दिखें तो वे सेटिंग्स जाँचें।
इसके विपरीत, हर प्रॉक्सी के लिए अलग स्लॉट देने से कई प्रॉक्सी एक साथ एक ही लक्ष्य से संपर्क कर सकते हैं। यह उस साइट-व्यापी सीमा को तोड़ सकता है जिसका क्रॉलर को सम्मान करना था। संरक्षित संसाधन के अनुसार स्लॉट कुंजी चुनें।
विलंब में आपका इस्तेमाल किया गया पथ शामिल है
Scrapy अनुरोध भेजने से लेकर HTTP हेडर मिलने तक की विलंबता मापता है। प्रॉक्सी से गुज़रने वाला अनुरोध उस अवलोकन में मध्यस्थ की कतार और अग्रेषण विलंब शामिल कर सकता है। AutoThrottle केवल मूल के लिए अलग प्रोसेसिंग समय नहीं पाता।
समवर्तीता बढ़ाने से वह माप साइट को अलग नहीं कर सकता। जब दोनों महत्वपूर्ण हों तो लक्ष्य के प्रति शिष्टाचार और प्रॉक्सी क्षमता को अलग सीमाओं के रूप में रखें। साझा प्रॉक्सी को लक्ष्य स्लॉट में अतिरिक्त समवर्ती बजट की ज़रूरत हो सकती है, जबकि हर लक्ष्य अपनी दर नीति रखता है।