Een Scrapy-verzoek kan Splash bereiken, terwijl de browser in Splash nog een andere uitgaande route nodig heeft. Dat zijn twee verbindingen:

Scrapy → Splash API
Splash browser → forward proxy → website

Voor één proxy per render geeft u het proxy-argument van de HTTP API door. Splash 3.5 documenteert een proxy-URL zoals http://proxy.example:8080, of een geconfigureerde proxy-profielnaam. Het URL-formaat ondersteunt ook SOCKS5 en optionele inloggegevens.

Wanneer afzonderlijke paginaresources verschillende eindpunten nodig hebben, gebruikt u een execute-script en registreert u de keuze vóór navigatie:

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

Geef default_proxy en special_proxy door als hostnamen, en special_resource als de exacte resource-URL die apart moet worden gerouteerd. Vervang de enkele voorbeeldpoort wanneer de twee listeners verschillen. Andere resources krijgen de standaardroute. De HTTP-proxylijst biedt eindpuntkandidaten voor deze host- en poortvelden wanneer routes naar openbare resources zijn toegestaan en er geen proxy-inloggegevens op de kandidaten worden toegepast.

De request-methode accepteert optionele velden username en password. Met het type HTTP gebruiken HTTPS-bestemmingen CONNECT via die HTTP-proxy; ze vereisen geen verzonnen HTTPS-proxytype.

De callback draait vóór elk verzoek. De request-methoden ervan kunnen een verzoek niet wijzigen nadat het is verzonden, en de callback kan geen asynchrone Splash-methoden zoals splash:go of splash:wait aanroepen.

Houd de routekeuze stabiel wanneer de pagina één sessie of één bronidentiteit verwacht. Elke afbeelding en API-aanvraag willekeurig aan een andere uitgang toewijzen kan een gerenderde pagina opleveren waarvan de verzoeken niet langer bij één samenhangende sessie horen.

Gerelateerde artikelen