Odaberite proxy za svaki Splash resurs
Odaberite Splash proxy na razini renderiranja ili u on_request povratnom pozivu kada pojedini resursi traže različite rute.
Scrapy zahtjev može uspješno doći do Splasha, dok preglednik unutar Splasha još treba drugu izlaznu rutu. To su dvije veze:
Scrapy → Splash API
Splash browser → forward proxy → websiteZa jedan proxy po renderiranju proslijedite proxy argument HTTP API-ja. Splash 3.5 dokumentira proxy URL kao http://proxy.example:8080 ili naziv konfiguriranog proxy profila. Format URL-a podržava i SOCKS5 i opcionalne vjerodajnice.
Kada pojedini resursi stranice traže različite krajnje točke, upotrijebite execute skriptu i registrirajte izbor prije navigacije:
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()
endProslijedite default_proxy i special_proxy kao nazive hostova, a special_resource kao točan URL resursa koji se zasebno usmjerava. Zamijenite jedini port iz primjera kada se dva slušatelja razlikuju. Ostali resursi dobivaju zadanu rutu. Popis HTTP proxyja nudi kandidate za krajnje točke za ta polja hosta i porta kada su dopuštene rute javnih resursa i kada se na kandidate ne primjenjuju proxy vjerodajnice.
Metoda request prihvaća opcionalna polja username i password. S tipom HTTP, HTTPS odredišta koriste CONNECT kroz taj HTTP proxy; ne zahtijevaju izmišljeni tip HTTPS proxyja.
Povratni poziv izvodi se prije svakog zahtjeva. Njegove request metode ne mogu promijeniti već poslani zahtjev, a povratni poziv ne može pozivati asinkrone Splash metode poput splash:go ili splash:wait.
Održavajte izbor rute stabilnim kada stranica očekuje jednu sesiju ili identitet izvora. Nasumično dodjeljivanje svake slike i API zahtjeva drugom izlazu može proizvesti renderiranu stranicu čiji zahtjevi više ne pripadaju jednoj koherentnoj sesiji.