En Scrapy-forespørsel kan nå Splash, mens nettleseren inne i Splash fortsatt trenger en annen utgående rute. Dette er to tilkoblinger:

Scrapy → Splash API
Splash browser → forward proxy → website

For én proxy per gjengivelse sender du proxy-argumentet til HTTP API-et. Splash 3.5 dokumenterer en proxy-URL som http://proxy.example:8080, eller et konfigurert proxyprofilnavn. URL-formatet støtter også SOCKS5 og valgfrie påloggingsdata.

Når enkelte sideressurser trenger ulike endepunkter, bruk et execute-skript og registrer valget før navigering:

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

Send default_proxy og special_proxy som vertsnavn, og special_resource som den nøyaktige ressurs-URL-en som skal rutes separat. Bytt ut den ene eksempelporten når de to lytterne er forskjellige. Andre ressurser får standardruten. HTTP-proxylisten tilbyr endepunktkandidater for disse verts- og portfeltene når ruter til offentlige ressurser er tillatt og ingen proxy-påloggingsdata brukes på kandidatene.

request-metoden godtar de valgfrie feltene username og password. Med typen HTTP bruker HTTPS-mål CONNECT gjennom den HTTP-proxyen; de krever ikke en oppdiktet HTTPS-proxytype.

Tilbakeringingen kjører før hver forespørsel. Dens request-metoder kan ikke endre en forespørsel etter at den er sendt, og tilbakeringingen kan ikke kalle asynkrone Splash-metoder som splash:go eller splash:wait.

Hold rutevalget stabilt når siden forventer én økt eller én kildeidentitet. Å tildele hvert bilde og hver API-forespørsel tilfeldig til en annen utgang kan gi en gjengitt side der forespørslene ikke lenger tilhører én sammenhengende økt.

Relaterte artikler