Đổi proxy không tự động đổi cookie của spider. Điều đó có thể hữu ích cho một phiên đang tiếp tục và gây bất ngờ khi nhiều phiên độc lập cùng chia sẻ một spider.

Phần mềm trung gian cookie của Scrapy hỗ trợ các lọ riêng biệt được chọn bởi siêu dữ liệu cookiejar của yêu cầu. Hãy gán cho khóa đó danh tính mà bạn thực sự muốn giữ lại:

yield scrapy.Request(
    'https://example.com/start',
    meta={'proxy': selected_proxy, 'cookiejar': 'workflow-17'},
)

Điểm cuối và khóa lọ là những lựa chọn độc lập. Một lần thu thập công khai chưa xác thực có thể lấy điểm cuối HTTP đã chọn từ danh sách proxy HTTP ở nơi tuyến đó được phép; quy trình vẫn sở hữu khóa lọ. Yêu cầu tiếp theo cần ở lại trong phiên này cần cùng khóa lọ; siêu dữ liệu không tự động dính vào mọi yêu cầu mới mà bạn tạo. Hãy truyền các trường cụ thể mà quy trình yêu cầu thay vì sao chép mù quáng toàn bộ siêu dữ liệu của phần mềm trung gian.

Dùng địa chỉ proxy làm khóa lọ chỉ là một chính sách

Lối tắt đó nhóm trạng thái theo điểm cuối. Nó không nhất thiết nhóm theo người, tài khoản hay lối ra công khai. Một điểm cuối của nhà cung cấp có thể luân chuyển lối ra, và nhiều tài khoản có thể dùng cùng một điểm cuối.

Với một quy trình được cấp phép cần trạng thái ổn định, hãy ghi riêng định danh tài khoản/phiên, định danh lọ và tuyến đã chọn. Nếu bạn quyết định đổi tuyến giữa chừng, hãy quyết định luôn điều gì nên xảy ra với phiên của ứng dụng.

Các lọ riêng biệt ngăn việc chia sẻ cookie ngoài ý muốn giữa các nhóm bạn đã định nghĩa. Chúng không hứa rằng một đích đến không thể liên hệ hai yêu cầu qua tài khoản hay dữ liệu ứng dụng khác.

Nếu trang sai vẫn tồn tại sau khi đổi IP, hãy kiểm tra lọ nào đã gửi yêu cầu trước khi xóa mọi cookie hoặc thay thế toàn bộ nhóm proxy. Trạng thái được lưu giữ hoàn toàn có thể giải thích trang đó.

Bài viết liên quan