Pasirinkite tarpinį serverį kiekvienam Splash ištekliui
Pasirinkite Splash tarpinį serverį atvaizdavimo lygiu arba on_request atgaliniame iškvietime, kai atskiri ištekliai reikalauja skirtingų maršrutų.
Scrapy užklausa gali pasiekti Splash, tačiau naršyklė Splash viduje vis dar reikalauja kito išėjimo maršruto. Tai dvi jungtys:
Scrapy → Splash API
Splash browser → forward proxy → websiteVienam tarpiniam serveriui vienam atvaizdavimui perduokite HTTP API proxy argumentą. Splash 3.5 dokumentuoja proxy URL, pavyzdžiui, http://proxy.example:8080, arba sukonfigūruoto proxy profilio pavadinimą. URL formatas taip pat palaiko SOCKS5 ir pasirenkamus prisijungimo duomenis.
Kai atskiri puslapio ištekliai reikalauja skirtingų galinių taškų, naudokite execute scenarijų ir užregistruokite pasirinkimą prieš navigaciją:
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()
endPerduokite default_proxy ir special_proxy kaip pagrindinio kompiuterio pavadinimus, o special_resource kaip tikslų ištekliaus, kuris turi būti nukreiptas atskirai, URL. Pakeiskite vienintelį pavyzdžio prievadą, kai du klausytojai skiriasi. Kiti ištekliai gauna numatytąjį maršrutą. HTTP tarpinių serverių sąrašas siūlo galinių taškų kandidatus šiems pagrindinio kompiuterio ir prievado laukams, kai leidžiami viešųjų išteklių maršrutai ir kandidatams netaikomi proxy prisijungimo duomenys.
request metodas priima pasirenkamus username ir password laukus. Su tipu HTTP HTTPS paskirties vietos naudoja CONNECT per tą HTTP tarpinį serverį; joms nereikia išgalvoto HTTPS proxy tipo.
Atgalinis iškvietimas vykdomas prieš kiekvieną užklausą. Jo request metodai negali pakeisti jau išsiųstos užklausos, o atgalinis iškvietimas negali kviesti asinchroninių Splash metodų, tokių kaip splash:go arba splash:wait.
Išlaikykite maršruto pasirinkimą stabilų, kai puslapis tikisi vienos sesijos arba vieno šaltinio tapatybės. Atsitiktinis kiekvieno vaizdo ir API užklausos priskyrimas kitai išeičiai gali sukurti atvaizduotą puslapį, kurio užklausos nebepriklauso vienai nuosekliai sesijai.