Chọn proxy cho từng tài nguyên của Splash
Chọn proxy Splash ở phạm vi kết xuất hoặc trong callback on_request khi các tài nguyên riêng lẻ cần tuyến đường khác nhau.
Một yêu cầu Scrapy có thể đến được Splash trong khi trình duyệt bên trong Splash vẫn cần một tuyến ra khác. Đây là hai kết nối:
Scrapy → Splash API
Splash browser → forward proxy → websiteĐể một proxy cho mỗi lần kết xuất, hãy truyền đối số proxy của HTTP API. Splash 3.5 ghi nhận một URL proxy như http://proxy.example:8080, hoặc tên hồ sơ proxy đã cấu hình. Định dạng URL của nó cũng hỗ trợ SOCKS5 và thông tin xác thực tùy chọn.
Khi các tài nguyên riêng lẻ của trang cần điểm cuối khác nhau, hãy dùng script execute và đăng ký lựa chọn trước khi điều hướng:
function main(splash, args)
splash:on_request(function(request)
local host = args.default_proxy
if request.url == args.special_resource then
host = args.special_proxy
end
request:set_proxy{host = host, port = 8080, type = 'HTTP'}
end)
assert(splash:go(args.url))
return splash:html()
endTruyền default_proxy và special_proxy làm tên máy chủ, và special_resource làm URL chính xác của tài nguyên cần định tuyến riêng. Thay cổng duy nhất trong ví dụ khi hai trình lắng nghe khác nhau. Các tài nguyên khác nhận tuyến mặc định. Danh sách proxy HTTP cung cấp các ứng viên điểm cuối cho các trường máy chủ và cổng này khi tuyến đến tài nguyên công cộng được phép và không áp dụng thông tin xác thực proxy cho các ứng viên.
Phương thức request chấp nhận các trường username và password tùy chọn. Với loại HTTP, đích HTTPS dùng CONNECT qua proxy HTTP đó; chúng không cần loại proxy HTTPS bịa ra.
Callback chạy trước mỗi yêu cầu. Các phương thức request của nó không thể thay đổi một yêu cầu sau khi đã gửi, và callback không thể gọi các phương thức Splash bất đồng bộ như splash:go hay splash:wait.
Giữ lựa chọn tuyến ổn định khi trang mong đợi một phiên hoặc một danh tính nguồn. Gán ngẫu nhiên mọi hình ảnh và yêu cầu API sang một lối ra khác có thể tạo ra trang đã kết xuất mà các yêu cầu của nó không còn thuộc về một phiên nhất quán.