Vì sao tiêu đề thoát của ProxyMesh có thể thiếu trong Scrapy
ProxyMesh có thể gửi siêu dữ liệu định tuyến trên CONNECT trước khi Scrapy nhận phản hồi đã mã hóa của trang web. Hãy kiểm tra giai đoạn phản hồi thực sự mang nó.
Việc thiếu X-ProxyMesh-IP trong lệnh gọi lại HTTPS của Scrapy không chứng minh định tuyến trực tiếp. Với HTTPS qua đường hầm, ProxyMesh đặt tiêu đề định tuyến trên phản hồi CONNECT; phản hồi trang web sau đó nằm trong TLS và không tự động bao gồm siêu dữ liệu trước đó.
Ở nơi tiêu đề được hiển thị trong lệnh gọi lại, hãy đọc nó theo điều kiện:
exit_ip = response.headers.get(b'X-ProxyMesh-IP')
if exit_ip is not None:
self.logger.info('Reported exit IP: %s', exit_ip.decode('ascii'))
Đây là địa chỉ thoát do nhà cung cấp báo cáo cho lần trao đổi đó, không phải tên máy chủ đầu vào đã cấu hình.
Nếu cần siêu dữ liệu đường hầm, hãy dùng tích hợp trình xử lý tương thích hiển thị tiêu đề CONNECT. ProxyMesh duy trì một cái cho mục đích này; hãy kiểm tra phiên bản Scrapy được hỗ trợ và trình xử lý tải xuống. Việc phân tích của nhện không thể tiết lộ tiêu đề mà tầng vận chuyển chưa từng cung cấp.
Gắn siêu dữ liệu với kết nối của nó. Dùng lại đường hầm không tạo thêm phản hồi CONNECT cho mỗi trang. Để biết địa chỉ nguồn độc lập mà đích quan sát được, hãy kiểm tra kết nối đến của đích đó thay vì coi tiêu đề của nhà cung cấp là công cụ phát hiện IP phổ quát.