Escolha um proxy para cada recurso do Splash
Selecione um proxy do Splash no escopo de renderização ou em um callback on_request quando recursos individuais precisam de rotas diferentes.
Uma solicitação do Scrapy pode alcançar o Splash, enquanto o navegador dentro do Splash ainda precisa de uma rota de saída diferente. São duas conexões:
Scrapy → Splash API
Splash browser → forward proxy → websitePara um proxy por renderização, passe o argumento proxy da API HTTP. O Splash 3.5 documenta uma URL de proxy como http://proxy.example:8080, ou um nome de perfil de proxy configurado. O formato de URL também aceita SOCKS5 e credenciais opcionais.
Quando recursos individuais da página precisam de endpoints diferentes, use um script execute e registre a escolha antes da navegação:
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()
endPasse default_proxy e special_proxy como nomes de host, e special_resource como a URL exata do recurso que deve ser roteado separadamente. Substitua a única porta do exemplo quando os dois ouvintes forem diferentes. Os demais recursos recebem a rota padrão. A lista de proxies HTTP oferece candidatos de endpoint para esses campos de host e porta quando rotas para recursos públicos são permitidas e nenhuma credencial de proxy é aplicada aos candidatos.
O método request aceita os campos opcionais username e password. Com o tipo HTTP, destinos HTTPS usam CONNECT por esse proxy HTTP; eles não exigem um tipo de proxy HTTPS inventado.
O callback é executado antes de cada solicitação. Seus métodos request não podem alterar uma solicitação depois de enviada, e o callback não pode chamar métodos assíncronos do Splash como splash:go ou splash:wait.
Mantenha a seleção de rota estável quando a página espera uma única sessão ou identidade de origem. Atribuir aleatoriamente cada imagem e solicitação de API a outra saída pode produzir uma página renderizada cujas solicitações não pertencem mais a uma sessão coerente.