Odaberite proxy za svaki Splash resurs
Odaberite Splash proxy na nivou renderovanja ili u on_request povratnom pozivu kada pojedinačni resursi traže različite rute.
Scrapy zahtev može uspešno doći do Splash-a, dok pregledač unutar Splash-a još uvek treba drugu izlaznu rutu. To su dve veze:
Scrapy → Splash API
Splash browser → forward proxy → websiteZa jedan proxy po renderovanju prosledite proxy argument HTTP API-ja. Splash 3.5 dokumentuje proxy URL kao što je http://proxy.example:8080 ili naziv konfigurisanog proxy profila. Format URL-a podržava i SOCKS5 i opcione akreditive.
Kada pojedinačni resursi stranice traže različite krajnje tačke, koristite execute skriptu i registrujte izbor pre 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()
endProsledite default_proxy i special_proxy kao nazive hostova, a special_resource kao tačan URL resursa koji se posebno rutira. Zamenite jedini port iz primera kada se dva slušaoca razlikuju. Ostali resursi dobijaju podrazumevanu rutu. Lista HTTP proxyja nudi kandidate za krajnje tačke za ova polja hosta i porta kada su dozvoljene rute javnih resursa i kada se na kandidate ne primenjuju proxy akreditivi.
Metod request prihvata opciona polja username i password. Sa tipom HTTP, HTTPS odredišta koriste CONNECT kroz taj HTTP proxy; ne zahtevaju izmišljeni tip HTTPS proxyja.
Povratni poziv se izvršava pre svakog zahteva. Njegove request metode ne mogu promeniti već poslat zahtev, a povratni poziv ne može pozivati asinhrone Splash metode kao što su splash:go ili splash:wait.
Održavajte izbor rute stabilnim kada stranica očekuje jednu sesiju ili identitet izvora. Nasumično dodeljivanje svake slike i API zahteva drugom izlazu može proizvesti renderovanu stranicu čiji zahtevi više ne pripadaju jednoj koherentnoj sesiji.