Hai cài đặt có thể vô hiệu hóa middleware proxy của Scrapy
Hãy kiểm tra danh sách middleware trình tải xuống đã hợp nhất và HTTPPROXY_ENABLED trước khi thêm một bản sao khác của middleware proxy tích hợp sẵn của Scrapy.
HttpProxyMiddleware thuộc các giá trị mặc định tích hợp sẵn của trình tải xuống trong Scrapy. Nó không cần xuất hiện trong từ điển DOWNLOADER_MIDDLEWARES của chính dự án để có sẵn.
Có hai cơ chế điều khiển riêng biệt cần xem xét:
- HTTPPROXY_ENABLED điều khiển việc thành phần tích hợp sẵn có được bật hay không.
- Giá trị None cho đường dẫn lớp của nó trong DOWNLOADER_MIDDLEWARES sẽ loại bỏ nó khỏi chuỗi middleware đã hợp nhất.
Ví dụ, điều này vô hiệu hóa rõ ràng mục mặc định:
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': None,
}
Hãy xóa phần ghi đè đó khi thành phần tích hợp sẵn cần quay lại. Đừng sao chép một bảng DOWNLOADER_MIDDLEWARES_BASE cũ vào dự án chỉ để khôi phục một mục; Scrapy kết hợp các giá trị mặc định của nó với các ghi đè của dự án.
Một middleware đã bật vẫn cần một tuyến, từ các giá trị môi trường được hỗ trợ hoặc từ siêu dữ liệu proxy của yêu cầu. Sự xuất hiện của nó trong nhật ký khởi động tự nó không phải là việc gán yêu cầu.
Các bản phát hành Scrapy rất cũ khác nhau về thời điểm thành phần được tải mà không có giá trị môi trường proxy. Hãy giữ lại phiên bản đã cài đặt cùng với chẩn đoán, thay vì coi một quan sát lịch sử từ thời kỳ 1.3 là quy tắc bật hiện hành.