เลือกพร็อกซีสำหรับแต่ละทรัพยากรของ Splash
เลือกพร็อกซี Splash ที่ระดับการเรนเดอร์หรือในคอลแบ็ก on_request เมื่อทรัพยากรแต่ละรายการต้องใช้เส้นทางที่ต่างกัน
คำขอ Scrapy สามารถเข้าถึง Splash ได้ แต่เบราว์เซอร์ภายใน Splash ยังต้องใช้เส้นทางขาออกอื่น คำขอนี้เป็นสองการเชื่อมต่อ:
Scrapy → Splash API
Splash browser → forward proxy → websiteสำหรับพร็อกซีหนึ่งตัวต่อการเรนเดอร์ ให้ส่งอาร์กิวเมนต์ proxy ของ HTTP API Splash 3.5 เอกสาร URL พร็อกซีเช่น http://proxy.example:8080 หรือชื่อ proxy-profile ที่กำหนดค่าไว้ รูปแบบ URL ของมันยังรองรับ SOCKS5 และข้อมูลรับรองแบบไม่บังคับ
เมื่อทรัพยากรแต่ละรายการของหน้าเว็บต้องใช้ปลายทางที่ต่างกัน ให้ใช้สคริปต์ execute และลงทะเบียนการเลือกก่อนการนำทาง:
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()
endส่ง default_proxy และ special_proxy เป็นชื่อโฮสต์ และ special_resource เป็น URL ที่แน่นอนของทรัพยากรที่ต้องกำหนดเส้นทางแยก เปลี่ยนพอร์ตเดียวในตัวอย่างเมื่อตัวรับฟังทั้งสองต่างกัน ทรัพยากรอื่นจะได้รับเส้นทางเริ่มต้น รายการพร็อกซี HTTP มีผู้สมัครปลายทางสำหรับฟิลด์โฮสต์และพอร์ตเหล่านี้เมื่ออนุญาตเส้นทางไปยังทรัพยากรสาธารณะและไม่มีการใช้ข้อมูลรับรองพร็อกซีกับผู้สมัคร
เมธอด request ยอมรับฟิลด์ username และ password แบบไม่บังคับ เมื่อใช้ชนิด HTTP ปลายทาง HTTPS จะใช้ CONNECT ผ่านพร็อกซี HTTP นั้น ไม่ต้องใช้ชนิดพร็อกซี HTTPS ที่ประดิษฐ์ขึ้น
คอลแบ็กทำงานก่อนทุกคำขอ เมธอด request ของมันไม่สามารถเปลี่ยนคำขอหลังจากส่งแล้ว และคอลแบ็กไม่สามารถเรียกเมธอด Splash แบบอะซิงโครนัสเช่น splash:go หรือ splash:wait
รักษาการเลือกเส้นทางให้คงที่เมื่อหน้าเว็บคาดหวังเซสชันเดียวหรือตัวตนแหล่งเดียว การกำหนดภาพและคำขอ API ทุกครั้งไปยังทางออกอื่นแบบสุ่มอาจทำให้หน้าเว็บที่เรนเดอร์แล้วมีคำขอที่ไม่เป็นของเซสชันเดียวที่สอดคล้องกันอีกต่อไป