'n Scrapy-versoek kan Splash suksesvol bereik terwyl die blaaier binne Splash steeds 'n ander uitgaande roete nodig het. Dit is twee verbindings:

Scrapy → Splash API
Splash browser → forward proxy → website

Vir een proxy per weergawe, gee die HTTP API se proxy-argument deur. Splash 3.5 dokumenteer 'n proxy-URL soos http://proxy.example:8080, of 'n gekonfigureerde proxy-profielnaam. Die URL-formaat ondersteun ook SOCKS5 en opsionele geloofsbriewe.

Wanneer individuele bladsy-hulpbronne verskillende eindpunte nodig het, gebruik 'n execute-skrip en registreer die keuse voor navigasie:

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

Gee default_proxy en special_proxy as gasheername deur, en special_resource as die presiese hulpbron-URL wat apart geroteer moet word. Vervang die enkele voorbeeldpoort wanneer die twee luisteraars verskil. Ander hulpbronne kry die standaardroete. Die HTTP-proksielys verskaf eindpuntkandidate vir hierdie gasheer- en poortvelde wanneer roetes na publieke hulpbronne toegelaat word en geen proxy-geloofsbriewe op die kandidate toegepas word nie.

Die request-metode aanvaar opsionele username- en password-velde. Met die tipe HTTP gebruik HTTPS-bestemmings CONNECT deur daardie HTTP-proxy; hulle vereis nie 'n uitgedinkte HTTPS-proxy-tipe nie.

Die terugroep loop voor elke versoek. Sy request-metodes kan nie 'n versoek verander nadat dit gestuur is nie, en die terugroep kan nie asinchrone Splash-metodes soos splash:go of splash:wait aanroep nie.

Hou roetekeuse stabiel wanneer die bladsy een sessie of bronidentiteit verwag. Om elke prent en API-versoek lukraak aan 'n ander uitgang toe te wys, kan 'n weergegewe bladsy lewer waarvan die versoeke nie meer aan een samehangende sessie behoort nie.

Verwante artikels