Požiadavka Scrapy môže úspešne dosiahnuť Splash, zatiaľ čo prehliadač vnútri Splash stále potrebuje inú odchádzajúcu trasu. Sú to dve spojenia:

Scrapy → Splash API
Splash browser → forward proxy → website

Pre jednu proxy na vykreslenie odovzdajte argument proxy rozhrania HTTP API. Splash 3.5 dokumentuje URL proxy ako http://proxy.example:8080 alebo názov nakonfigurovaného profilu proxy. Formát URL podporuje aj SOCKS5 a voliteľné prihlasovacie údaje.

Keď jednotlivé zdroje stránky potrebujú rôzne koncové body, použite skript execute a zaregistrujte voľbu pred navigáciou:

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

Odovzdajte default_proxy a special_proxy ako názvy hostiteľov a special_resource ako presnú URL zdroja, ktorý sa má smerovať samostatne. Nahraďte jediný port z príkladu, keď sa oba naslúchajúce procesy líšia. Ostatné zdroje dostanú predvolenú trasu. Zoznam proxy HTTP ponúka kandidátov koncových bodov pre tieto polia hostiteľa a portu, keď sú povolené trasy k verejným zdrojom a na kandidátov sa neuplatňujú prihlasovacie údaje proxy.

Metóda request prijíma voliteľné polia username a password. S typom HTTP ciele HTTPS používajú CONNECT cez túto HTTP proxy; nevyžadujú vymyslený typ HTTPS proxy.

Spätné volanie sa spúšťa pred každou požiadavkou. Jeho metódy request nemôžu zmeniť požiadavku po odoslaní a spätné volanie nemôže volať asynchrónne metódy Splash, ako sú splash:go alebo splash:wait.

Udržujte voľbu trasy stabilnú, keď stránka očakáva jednu reláciu alebo identitu zdroja. Náhodné priradenie každého obrázka a požiadavky API inému výstupu môže vytvoriť vykreslenú stránku, ktorej požiadavky už nepatria jednej súvislej relácii.

Súvisiace články