Scrapy захтев може успешно да стигне до Splash-а, док прегледач унутар Splash-а још увек захтева другу излазну руту. То су две везе:

Scrapy → Splash API
Splash browser → forward proxy → website

За један прокси по рендеровању проследите proxy аргумент HTTP API-ја. Splash 3.5 документује прокси URL као што је http://proxy.example:8080 или назив конфигурисаног прокси профила. Формат URL-а подржава и SOCKS5 и опционе акредитиве.

Када појединачни ресурси странице захтевају различите крајње тачке, користите execute скрипту и региструјте избор пре навигације:

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

Проследите default_proxy и special_proxy као називе хостова, а special_resource као тачан URL ресурса који се посебно рутира. Замените једини порт из примера када се два слушаоца разликују. Остали ресурси добијају подразумевану руту. Листа HTTP проксија нуди кандидате за крајње тачке за ова поља хоста и порта када су дозвољене руте јавних ресурса и када се на кандидате не примењују прокси акредитиви.

Метод request прихвата опциона поља username и password. Са типом HTTP, HTTPS одредишта користе CONNECT кроз тај HTTP прокси; не захтевају измишљени тип HTTPS проксија.

Повратни позив се извршава пре сваког захтева. Његове request методе не могу променити већ послат захтев, а повратни позив не може позивати асинхроне Splash методе као што су splash:go или splash:wait.

Одржавајте избор руте стабилним када страница очекује једну сесију или идентитет извора. Насумично додељивање сваке слике и API захтева другом излазу може произвести рендеровану страницу чији захтеви више не припадају једној кохерентној сесији.

Повезани чланци