Giữ một agent Ruby Mechanize cho mỗi phiên proxy
Đặt proxy cho agent Ruby Mechanize một lần, dùng lại nó cho các yêu cầu liên quan và chủ động giới hạn trạng thái cookie cùng các kết nối duy trì.
Nếu công việc là kiểm tra phản hồi HTTP và theo dõi các liên kết thông thường, không phải lúc nào cũng cần trình duyệt đầy đủ. Ruby Mechanize phơi bày proxy trên agent thực hiện các yêu cầu đó:
agent = Mechanize.new('office-route')
begin
agent.set_proxy('proxy.example', 8080)
page = agent.get('https://www.example.com/')
puts page.code
ensure
agent.shutdown
endĐiều này giả định thư viện mechanize đã được nạp. Để kiểm tra một trang công khai được phép mà không cần xác thực proxy, danh sách proxy HTTP cung cấp các giá trị máy chủ/cổng phù hợp cho ví dụ. Phương thức proxy cũng nhận tên người dùng và mật khẩu làm đối số thứ ba và thứ tư tùy chọn khi điểm cuối yêu cầu.
Dùng lại agent đã cấu hình cho các yêu cầu thuộc cùng một phiên duyệt. Nó mang theo cookie và lịch sử cũng như các thiết lập mạng. Thay đổi proxy thoát không tự nó tạo ra danh tính mới hay vứt bỏ cookie đăng nhập.
Với nhiều phiên proxy, hãy cấp cho mỗi phiên một agent riêng thay vì đổi một agent dùng chung khi công việc đang chạy. Thư viện cũng ghi lại các tên kết nối duy nhất khi cần các kết nối SSL tách biệt; tên constructor trong ví dụ làm rõ lựa chọn đó.
Nhóm các kiểm tra URL liên quan theo proxy có thể giảm việc cấu hình lại không cần thiết. Giữ kết quả gắn với tuyến và URL đã tạo ra nó, bao gồm chuyển hướng và phản hồi lỗi.
Mechanize không tái tạo việc thực thi JavaScript của trình duyệt. Dùng trình duyệt thật khi hành vi đang kiểm tra phụ thuộc vào script, kết xuất hoặc xác thực riêng của trình duyệt. Một lần lấy HTTP thành công qua proxy trả lời câu hỏi hẹp hơn: agent này đã có thể thực hiện yêu cầu đó.