Una richiesta Scrapy può raggiungere Splash correttamente mentre il browser all'interno di Splash necessita ancora di una route in uscita diversa. Sono due connessioni:

Scrapy → Splash API
Splash browser → forward proxy → website

Per un proxy per rendering, passare l'argomento proxy dell'API HTTP. Splash 3.5 documenta un URL proxy come http://proxy.example:8080, oppure un nome di profilo proxy configurato. Il formato dell'URL supporta anche SOCKS5 e credenziali opzionali.

Quando singole risorse della pagina richiedono endpoint diversi, usare uno script execute e registrare la scelta prima della navigazione:

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()
end

Passare default_proxy e special_proxy come nomi host e special_resource come URL esatto della risorsa da instradare separatamente. Sostituire l'unica porta dell'esempio quando i due listener differiscono. Le altre risorse ricevono la route predefinita. L'elenco di proxy HTTP fornisce candidati endpoint per questi campi host e porta quando le route verso risorse pubbliche sono consentite e nessuna credenziale proxy viene applicata ai candidati.

Il metodo request accetta i campi facoltativi username e password. Con il tipo HTTP, le destinazioni HTTPS usano CONNECT attraverso quel proxy HTTP; non richiedono un tipo di proxy HTTPS inventato.

Il callback viene eseguito prima di ogni richiesta. I suoi metodi request non possono modificare una richiesta dopo l'invio, e il callback non può chiamare metodi asincroni di Splash come splash:go o splash:wait.

Mantenere stabile la selezione della route quando la pagina prevede un'unica sessione o identità di origine. Assegnare a caso ogni immagine e richiesta API a un'altra uscita può produrre una pagina renderizzata le cui richieste non appartengono più a un'unica sessione coerente.

Articoli correlati