Scrapy päring võib Splashini jõuda, samal ajal kui Splashi sees olev brauser vajab endiselt teistsugust väljuvat marsruuti. Need on kaks ühendust:

Scrapy → Splash API
Splash browser → forward proxy → website

Ühe puhverserveri jaoks renderduse kohta edastage HTTP API proxy-argument. Splash 3.5 dokumenteerib puhverserveri URL-i nagu http://proxy.example:8080 või konfigureeritud proxy-profiili nime. URL-i vorming toetab ka SOCKS5-t ja valikulisi mandaate.

Kui üksikud lehe ressursid vajavad erinevaid lõpp-punkte, kasutage execute-skripti ja registreerige valik enne navigeerimist:

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

Edastage default_proxy ja special_proxy hostinimedena ning special_resource täpse ressursi URL-ina, mida eraldi marsruutida. Asendage näites olev üksik port, kui kaks kuulajat erinevad. Teised ressursid saavad vaikemarsruudi. HTTP puhverserverite loend pakub lõpp-punkti kandidaate nende hosti- ja pordiväljade jaoks, kui avalike ressursside marsruudid on lubatud ja kandidaatidele ei rakendata puhverserveri mandaate.

Meetod request võtab vastu valikulised väljad username ja password. Tüübi HTTP korral kasutavad HTTPS-sihtmärgid CONNECT-i selle HTTP puhverserveri kaudu; need ei vaja väljamõeldud HTTPS-puhverserveri tüüpi.

Tagasihelistus käivitub enne iga päringut. Selle request-meetodid ei saa päringut pärast saatmist muuta ning tagasihelistus ei saa kutsuda asünkroonseid Splashi meetodeid nagu splash:go või splash:wait.

Hoidke marsruudi valik stabiilne, kui leht eeldab ühte seanssi või allika identiteeti. Iga pildi ja API-päringu juhuslik suunamine teisele väljundile võib anda renderdatud lehe, mille päringud ei kuulu enam ühte sidusasse seanssi.

Seotud artiklid