การตั้งค่าสองอย่างสามารถปิดใช้งานพร็อกซีมิดเดิลแวร์ของ Scrapy
ตรวจสอบรายการมิดเดิลแวร์ตัวดาวน์โหลดที่รวมแล้วและ HTTPPROXY_ENABLED ก่อนที่จะเพิ่มสำเนาอีกชุดของพร็อกซีมิดเดิลแวร์ในตัวของ Scrapy
HttpProxyMiddleware เป็นส่วนหนึ่งของค่าเริ่มต้นตัวดาวน์โหลดในตัวของ Scrapy ไม่จำเป็นต้องปรากฏในพจนานุกรม DOWNLOADER_MIDDLEWARES ของโปรเจกต์เพื่อให้ใช้งานได้
มีการควบคุมแยกกันสองอย่างที่ต้องตรวจสอบ:
- HTTPPROXY_ENABLED ควบคุมว่าองค์ประกอบในตัวเปิดใช้งานหรือไม่
- ค่า None สำหรับเส้นทางคลาสของมันใน DOWNLOADER_MIDDLEWARES จะลบมันออกจากห่วงโซ่มิดเดิลแวร์ที่รวมแล้ว
ตัวอย่างเช่น สิ่งนี้ปิดใช้งานรายการเริ่มต้นอย่างชัดเจน:
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': None,
}
ลบการเขียนทับนั้นเมื่อองค์ประกอบในตัวควรกลับมา อย่าคัดลอกตาราง DOWNLOADER_MIDDLEWARES_BASE เก่าเข้าในโปรเจกต์เพียงเพื่อคืนค่ารายการเดียว Scrapy จะรวมค่าเริ่มต้นของมันกับการเขียนทับของโปรเจกต์
มิดเดิลแวร์ที่เปิดใช้งานยังต้องมีเส้นทาง จากค่าสภาพแวดล้อมที่รองรับหรือจากข้อมูลเมตาพร็อกซีของคำขอ การปรากฏในบันทึกการเริ่มต้นไม่ใช่การกำหนดคำขอด้วยตัวเอง
Scrapy เวอร์ชันเก่ามากแตกต่างกันในเวลาที่องค์ประกอบถูกโหลดโดยไม่มีค่าสภาพแวดล้อมพร็อกซี เก็บเวอร์ชันที่ติดตั้งไว้พร้อมกับการวินิจฉัย แทนที่จะถือว่าการสังเกตทางประวัติศาสตร์ในยุค 1.3 เป็นกฎการเปิดใช้งานปัจจุบัน