Әр Splash ресурсы үшін прокси таңдаңыз
Жекелеген ресурстарға түрлі маршруттар қажет болғанда проксиді рендер деңгейінде немесе on_request кері шақыруында таңдаңыз.
Scrapy сұранысы Splash-қа сәтті жетуі мүмкін, бірақ Splash ішіндегі браузерге әлі де басқа шығыс маршруты қажет. Бұл екі қосылым:
Scrapy → Splash API
Splash browser → forward proxy → websiteӘр рендерге бір прокси үшін HTTP API-дің proxy аргументін беріңіз. Splash 3.5 http://proxy.example:8080 сияқты прокси URL-ін немесе конфигурацияланған proxy-profile атауын құжаттайды. Оның 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()
enddefault_proxy мен special_proxy-ді хост атаулары ретінде, ал special_resource-ты бөлек маршрутталатын ресурстың нақты URL-і ретінде беріңіз. Екі тыңдаушы өзгеше болса, мысалдағы жалғыз портты ауыстырыңыз. Басқа ресурстар әдепкі маршрутты алады. HTTP прокси тізімі осы хост пен порт өрістері үшін соңғы нүкте үміткерлерін ұсынады, егер жалпыға ортақ ресурстарға маршруттар рұқсат етілсе және үміткерлерге прокси тіркелгі деректері қолданылмаса.
request әдісі қосымша username және password өрістерін қабылдайды. HTTP түрімен HTTPS мақсаттары сол HTTP прокси арқылы CONNECT пайдаланады; оларға ойдан шығарылған HTTPS прокси түрі қажет емес.
Кері шақыру әр сұраныстың алдында орындалады. Оның request әдістері жіберілген сұранысты өзгерте алмайды, ал кері шақыру splash:go немесе splash:wait сияқты асинхронды Splash әдістерін шақыра алмайды.
Бет бір сессияны немесе бір дереккөз идентитетін күткенде маршрут таңдауын тұрақты ұстаңыз. Әрбір сурет пен API сұранысын кездейсоқ басқа шығысқа тағайындау сұраныстары енді бір сабақтас сессияға жатпайтын рендерленген бетті тудыруы мүмкін.