ที่อยู่พร็อกซีเปลี่ยนในบันทึก ปลายทางไม่เคยปรากฏในบันทึกการเข้าถึงของพร็อกซี ตรวจสอบว่ามิดเดิลแวร์ของคุณปล่อยให้คำขอไปถึงตัวดาวน์โหลดหรือไม่

ในมิดเดิลแวร์ตัวดาวน์โหลดของ Scrapy การคืนค่า Request หมายถึงการจัดกำหนดการคำขอนั้นใหม่ ไม่ได้หมายความว่า «ส่งวัตถุนี้ต่อไปพร้อมเมทาดาทาที่ฉันเพิ่งเปลี่ยน»

สำหรับตัวเลือกที่เลือกเพียงเส้นทาง รูปแบบที่สำคัญคือ:

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

ส่วนนี้แสดงรูปแบบฮุกปัจจุบัน ใช้อินเทอร์เฟซมิดเดิลแวร์ที่รีลีส Scrapy ที่ติดตั้งรองรับ ตัวเลือกต้องคืนจุดสิ้นสุดที่ถูกต้องและจัดการพูลที่ไม่พร้อมใช้งานอย่างชัดเจน การรวบรวมข้อมูลสาธารณะที่อนุญาตตัวกลางสาธารณะสามารถดึงผู้สมัคร HTTP จากรายการพร็อกซี HTTPสำหรับค่าการคืนค่านั้น

การคืนค่า None ปล่อยให้มิดเดิลแวร์คำขอที่เหลือและตัวดาวน์โหลดดำเนินการต่อ การคืนค่า Request อื่นมีประโยชน์เมื่อคุณแทนที่หรืองานลองใหม่โดยเจตนา แต่ต้องมีเหตุผลและเงื่อนไขการออก

ตัวหมุนที่คืนคำขอเดิมทุกครั้งอาจรันโค้ดการเลือกของตัวเองซ้ำแล้วซ้ำเล่าโดยไม่เคยสร้างการเชื่อมต่อกับปลายทาง การเพิ่มเวลาหมดเวลาหรือเปิดพอร์ตพร็อกซีเพิ่มไม่สามารถซ่อมวงจรการควบคุมนั้นได้

ตรวจสอบการเข้ามิดเดิลแวร์ พฤติกรรมการคืนค่า และความพยายามเครือข่ายจริงครั้งแรกเป็นเหตุการณ์แยกกัน บรรทัดบันทึกที่บอกว่า «เลือกพร็อกซีแล้ว» พิสูจน์เพียงว่าตัวเลือกทำงาน ไม่ได้พิสูจน์ว่ามีการส่งคำขอโดยใช้จุดสิ้นสุดที่เลือก

บทความที่เกี่ยวข้อง