Pumili ng proxy para sa bawat Splash resource
Pumili ng Splash proxy sa antas ng render o sa on_request callback kapag ang indibidwal na resource ay nangangailangan ng iba't ibang ruta.
Ang isang Scrapy request ay maaaring makarating sa Splash habang ang browser sa loob ng Splash ay nangangailangan pa rin ng ibang papuntang labas na ruta. Ito ay dalawang koneksyon:
Scrapy → Splash API
Splash browser → forward proxy → websitePara sa isang proxy bawat render, ipasa ang proxy argument ng HTTP API. Idinodokumento ng Splash 3.5 ang isang proxy URL tulad ng http://proxy.example:8080, o isang naka-configure na pangalan ng proxy-profile. Sinusuportahan din ng format ng URL nito ang SOCKS5 at opsyonal na mga kredensyal.
Kapag ang indibidwal na resource ng pahina ay nangangailangan ng iba't ibang endpoint, gumamit ng execute script at irehistro ang pagpili bago ang nabigasyon:
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()
endIpasa ang default_proxy at special_proxy bilang mga hostname, at ang special_resource bilang eksaktong URL ng resource na hiwalay na iruruta. Palitan ang nag-iisang port sa halimbawa kapag magkaiba ang dalawang listener. Ang ibang resource ay tumatanggap ng default na ruta. Ang listahan ng HTTP proxy ay nagbibigay ng mga kandidatong endpoint para sa mga field ng host at port na ito kapag pinapayagan ang mga ruta sa pampublikong resource at walang kredensyal ng proxy na inilalapat sa mga kandidato.
Ang request method ay tumatanggap ng opsyonal na field na username at password. Sa uri na HTTP, ang mga destinasyong HTTPS ay gumagamit ng CONNECT sa pamamagitan ng HTTP proxy na iyon; hindi nila kailangan ang gawa-gawang uri ng HTTPS proxy.
Ang callback ay tumatakbo bago ang bawat request. Hindi mababago ng mga request method nito ang isang request pagkatapos itong maipadala, at hindi makakatawag ang callback ng mga async na Splash method tulad ng splash:go o splash:wait.
Panatilihing matatag ang pagpili ng ruta kapag ang pahina ay umaasa sa isang session o isang pagkakakilanlan ng pinagmulan. Ang random na pagtatalaga ng bawat larawan at request ng API sa ibang labasan ay maaaring makabuo ng na-render na pahina na ang mga request ay hindi na kabilang sa isang magkakaugnay na session.