Ар бир 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'in же конфигурацияланган 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 сурамын туш келди башка чыгууга дайындоо, сурамдары эми бир ырааттуу сессияга таандык болбогон рендерленген баракты жаратышы мүмкүн.