Zahteva Scrapy lahko doseže Splash, medtem ko brskalnik znotraj Splash še vedno potrebuje drugo izhodno pot. To sta dve povezavi:

Scrapy → Splash API
Splash browser → forward proxy → website

Za en proxy na upodabljanje posredujte argument proxy vmesnika HTTP API. Splash 3.5 dokumentira URL proxyja, kot je http://proxy.example:8080, ali ime konfiguriranega profila proxy. Format URL podpira tudi SOCKS5 in neobvezne poverilnice.

Ko posamezni viri strani potrebujejo različne končne točke, uporabite skript execute in izbiro registrirajte pred navigacijo:

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

Posredujte default_proxy in special_proxy kot imeni gostiteljev, special_resource pa kot natančen URL vira, ki naj se usmerja ločeno. Zamenjajte edina vrata iz primera, ko se poslušalca razlikujeta. Drugi viri dobijo privzeto pot. Seznam proxyjev HTTP ponuja kandidate končnih točk za ta polja gostitelja in vrat, ko so poti do javnih virov dovoljene in se na kandidate ne uporabljajo poverilnice proxyja.

Metoda request sprejme neobvezni polji username in password. Pri tipu HTTP cilji HTTPS uporabljajo CONNECT prek tega proxyja HTTP; ne potrebujejo izmišljenega tipa proxyja HTTPS.

Povratni klic se izvede pred vsako zahtevo. Njegove metode request ne morejo spremeniti zahteve po pošiljanju, povratni klic pa ne more klicati asinhronih metod Splash, kot sta splash:go ali splash:wait.

Ohranite izbiro poti stabilno, ko stran pričakuje eno sejo ali eno identiteto vira. Naključno dodeljevanje vsake slike in zahteve API drugemu izhodu lahko ustvari upodobljeno stran, katere zahteve ne pripadajo več eni skladni seji.

Sorodni članki