Trieu un proxy per a cada recurs de Splash
Trieu un proxy de Splash a l'àmbit de renderitzat o en una crida on_request quan recursos individuals necessiten rutes diferents.
Una sol·licitud de Scrapy pot arribar correctament a Splash mentre el navegador dins de Splash encara necessita una ruta de sortida diferent. Aquestes són dues connexions:
Scrapy → Splash API
Splash browser → forward proxy → websitePer a un proxy per renderitzat, passeu l'argument proxy de l'API HTTP. Splash 3.5 documenta una URL de proxy com http://proxy.example:8080, o un nom de perfil de proxy configurat. El format d'URL també admet SOCKS5 i credencials opcionals.
Quan recursos individuals de la pàgina necessiten punts de sortida diferents, feu servir un script execute i registreu la selecció abans de la navegació:
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()
endPasseu default_proxy i special_proxy com a noms d'amfitrió, i special_resource com l'URL exacta del recurs que s'ha d'encaminar per separat. Substituïu el port únic de l'exemple quan els dos oients difereixin. Els altres recursos reben la ruta per defecte. La llista de proxys HTTP ofereix candidats de punt final per a aquests camps d'amfitrió i port quan es permeten rutes de recursos públics i no s'apliquen credencials de proxy als candidats.
El mètode request accepta els camps opcionals username i password. Amb el tipus HTTP, les destinacions HTTPS utilitzen CONNECT a través d'aquest proxy HTTP; no necessiten un tipus de proxy HTTPS inventat.
La crida s'executa abans de cada sol·licitud. Els seus mètodes request no poden canviar una sol·licitud un cop enviada, i la crida no pot invocar mètodes asíncrons de Splash com splash:go o splash:wait.
Mantingueu estable la selecció de ruta quan la pàgina espera una sola sessió o identitat d'origen. Assignar a l'atzar cada imatge i sol·licitud d'API a una altra sortida pot produir una pàgina renderitzada les sol·licituds de la qual ja no pertanyen a una sessió coherent.