يتغير عنوان الوكيل في السجل. ولا تظهر الوجهة أبدًا في سجل وصول الوكيل. تحقق مما إذا كان الوسيط لديك يسمح للطلب بالوصول إلى المُنزِّل أصلًا.

في وسيط المُنزِّل في Scrapy، إرجاع Request يعني إعادة جدولة ذلك الطلب. ولا يعني «متابعة إرسال هذا الكائن بالبيانات الوصفية التي عدّلتها للتو».

بالنسبة إلى محدِّد يختار مسارًا فقط، الشكل المهم هو:

def process_request(self, request):
    request.meta['proxy'] = self.choose_proxy()
    return None

يعرض هذا المقتطف صيغة الخطاف الحالية؛ استخدم واجهة الوسيط التي يدعمها إصدار Scrapy المثبَّت. يجب أن يعيد المحدِّد نقطة نهاية صالحة وأن يتعامل مع تجمع غير متاح بشكل صريح. الزحف العلني الذي يسمح بوسطاء عموميين يمكنه سحب مرشحات HTTP من قائمة وكلاء HTTP من أجل قيمة الإرجاع تلك.

إرجاع None يتيح لبقية وسيط الطلب وللمُنزِّل المتابعة. إرجاع Request آخر مفيد عندما تستبدل عملًا أو تعيد المحاولة عن قصد، لكنه يحتاج إلى سبب وإلى شرط خروج.

المُدوِّر الذي يعيد الطلب نفسه في كل مرة يمكنه تشغيل شيفرة اختياره مرارًا دون إجراء اتصال بالوجهة قط. ورفع المهلات أو فتح منافذ وكيل إضافية لا يمكنه إصلاح حلقة تدفق التحكم تلك.

افحص دخول الوسيط وسلوك الإرجاع وأول محاولة شبكة فعلية كأحداث منفصلة. سطر السجل الذي يقول «تم اختيار الوكيل» يثبت فقط أن المحدِّد عمل. ولا يثبت أن طلبًا باستخدام نقطة النهاية المختارة قد أُرسل.

مقالات ذات صلة