Scrapy AutoThrottle عبر وكيل: الفتحات وزمن الاستجابة
أبقِ فتحات تنزيل الموقع المستهدف منفصلة عن مسارات الوكيل، وفسّر زمن الاستجابة على أنه مسار الطلب المرصود.
بشكل افتراضي، يخصّص Scrapy فتحات التنزيل انطلاقًا من نطاق عنوان URL للطلب. إعطاء الطلب وكيل HTTP لا يحوّل ذلك العنوان إلى اسم مضيف الوكيل. لذلك يمكن أن تحتفظ الطلبات إلى مواقع مختلفة بفتحات مختلفة مع مشاركة وسيط واحد.
يضبط AutoThrottle تأخير كل فتحة باستخدام زمن التنزيل المرصود. ولا يزال حد التزامن القياسي لكل نطاق والحد الأدنى لتأخير التنزيل ساريين.
تحقق من التجميع قبل تغيير الخوارزمية
يمكن لوسيط مخصص تعيين request.meta["download_slot"]، متجاوزًا اختيار الفتحة العادي. بعض امتدادات الوكيل تستخدم تجميعها الخاص. افحص تلك الإعدادات إذا بدت مواقع غير مترابطة تتشارك خانقًا واحدًا.
وعلى العكس، فإن تخصيص فتحة مختلفة لكل وكيل قد يسمح لعدة وكلاء بالاتصال بالهدف نفسه في وقت واحد. وقد يبطل ذلك حدًا على مستوى الموقع كان الزاحف يهدف إلى احترامه. اختر مفتاح الفتحة وفقًا للمورد الذي تحميه.
التأخير يشمل المسار الذي استخدمته
يقيس Scrapy زمن الاستجابة من إرسال الطلب إلى استلام ترويسات HTTP. وقد يتضمن الطلب المنقول عبر وكيل تأخير الاصطفاف وإعادة التوجيه لدى الوسيط في تلك الملاحظة. ولا يحصل AutoThrottle على زمن معالجة منفصل يخص الأصل فقط.
لا يمكن لزيادة التزامن أن تجعل ذلك القياس يعزل الموقع. احتفظ بلطف الهدف وسعة الوكيل كحدين منفصلين عندما يكون كلاهما مهمًا. قد يحتاج الوكيل المشترك إلى ميزانية تزامن إضافية عبر فتحات الأهداف، بينما يحتفظ كل هدف بسياسة معدله الخاصة.