Egy Scrapy-kérés sikeresen elérheti a Splasht, miközben a Splash böngészőjének még mindig más kimenő útvonalra van szüksége. Ez két kapcsolat:

Scrapy → Splash API
Splash browser → forward proxy → website

Renderelésenként egy proxyhoz adja át a HTTP API proxy argumentumát. A Splash 3.5 proxyt dokumentál, például http://proxy.example:8080, vagy egy beállított proxyprofil nevét. Az URL formátuma a SOCKS5-öt és a választható hitelesítő adatokat is támogatja.

Amikor az egyes oldalerőforrások különböző végpontokat igényelnek, használjon execute-szkriptet, és regisztrálja a választást a navigáció előtt:

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

Adja át a default_proxy és a special_proxy értékét hosztnévként, a special_resource értékét pedig a külön útvonalon kezelendő erőforrás pontos URL-jeként. Cserélje ki az egyetlen példaportot, ha a két figyelő eltér. A többi erőforrás az alapértelmezett útvonalat kapja. Az HTTP-proxylista végpontjelölteket kínál ezekhez a hoszt- és portmezőkhöz, amikor a nyilvános erőforrások útvonalai engedélyezettek, és a jelöltekre nem alkalmaznak proxy-hitelesítő adatokat.

A request metódus fogadja a választható username és password mezőket. HTTP típus esetén az HTTPS-célok CONNECTet használnak ezen a HTTP-proxyn keresztül; nem igényelnek kitalált HTTPS-proxytípust.

A visszahívás minden kérés előtt lefut. A request metódusai nem módosíthatnak egy kérést annak elküldése után, és a visszahívás nem hívhat aszinkron Splash-metódusokat, például splash:go vagy splash:wait.

Tartsa stabilan az útvonalválasztást, amikor az oldal egyetlen munkamenetet vagy forrásidentitást vár. Ha minden képet és API-kérést véletlenszerűen más kimenetre osztunk, olyan renderelt oldal jöhet létre, amelynek kérései már nem egy összefüggő munkamenethez tartoznak.

Kapcsolódó cikkek