Vælg en proxy til hver Splash-ressource
Vælg en Splash-proxy på gengivelsesniveau eller i et on_request-tilbagekald, når enkelte ressourcer har brug for forskellige ruter.
En Scrapy-anmodning kan nå Splash, mens browseren inde i Splash stadig har brug for en anden udgående rute. Det er to forbindelser:
Scrapy → Splash API
Splash browser → forward proxy → websiteTil én proxy pr. gengivelse sendes HTTP API'ets proxy-argument. Splash 3.5 dokumenterer en proxy-URL som http://proxy.example:8080 eller et konfigureret proxy-profilnavn. URL-formatet understøtter også SOCKS5 og valgfrie legitimationsoplysninger.
Når enkelte sideressourcer har brug for forskellige endepunkter, brug et execute-script, og registrér valget før navigation:
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()
endSend default_proxy og special_proxy som værtsnavne og special_resource som den præcise ressource-URL, der skal routes separat. Erstat den ene eksempelport, når de to lyttere er forskellige. Andre ressourcer får standardruten. HTTP-proxylisten giver endepunktkandidater til disse vært- og portfelter, når ruter til offentlige ressourcer er tilladt, og der ikke anvendes proxy-legitimationsoplysninger på kandidaterne.
request-metoden accepterer valgfrie felterne username og password. Med typen HTTP bruger HTTPS-destinationer CONNECT gennem den HTTP-proxy; de kræver ikke en opdigtet HTTPS-proxytype.
Tilbagekaldet kører før hver anmodning. Dets request-metoder kan ikke ændre en anmodning, efter den er sendt, og tilbagekaldet kan ikke kalde asynkrone Splash-metoder som splash:go eller splash:wait.
Hold rutevalget stabilt, når siden forventer én session eller kildeidentitet. Hvis hvert billede og API-kald tildeles en anden udgang tilfældigt, kan det give en gengivet side, hvis anmodninger ikke længere tilhører én sammenhængende session.