Har bir Splash resursi uchun proksi tanlang
Alohida resurslar turli marshrutlarni talab qilganda proksini render darajasida yoki on_request qayta chaqiruvida tanlang.
Scrapy so'rovi Splash'ga yetib borishi mumkin, ammo Splash ichidagi brauzer hali ham boshqa chiqish marshrutiga muhtoj. Bu ikki ulanish:
Scrapy → Splash API
Splash browser → forward proxy → websiteHar bir render uchun bitta proksi uchun HTTP API'ning proxy argumentini bering. Splash 3.5 http://proxy.example:8080 kabi proksi URL yoki sozlangan proxy-profile nomini hujjatlashtiradi. Uning URL formati SOCKS5 va ixtiyoriy hisob ma'lumotlarini ham qo'llab-quvvatlaydi.
Sahifadagi alohida resurslar turli so'nggi nuqtalarni talab qilganda, execute skriptidan foydalaning va navigatsiyadan oldin tanlovni ro'yxatdan o'tkazing:
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 va special_proxy ni xost nomlari sifatida, special_resource ni esa alohida marshrutlanadigan resursning aniq URL i sifatida bering. Ikki tinglovchi farq qilganda misoldagi yagona portni almashtiring. Boshqa resurslar standart marshrutni oladi. HTTP proksilar ro'yxati ochiq resurslarga marshrutlar ruxsat etilganda va nomzodlarga proksi hisob ma'lumotlari qo'llanilmaganda ushbu xost va port maydonlari uchun so'nggi nuqta nomzodlarini taqdim etadi.
request usuli ixtiyoriy username va password maydonlarini qabul qiladi. HTTP turi bilan HTTPS manzillari shu HTTP proksi orqali CONNECT dan foydalanadi; ularga o'ylab topilgan HTTPS proksi turi kerak emas.
Qayta chaqiruv har bir so'rovdan oldin ishlaydi. Uning request usullari yuborilgan so'rovni o'zgartira olmaydi va qayta chaqiruv splash:go yoki splash:wait kabi asinxron Splash usullarini chaqira olmaydi.
Sahifa bitta sessiya yoki bitta manba identifikatorini kutganda marshrut tanlovini barqaror tuting. Har bir rasm va API so'rovini tasodifiy boshqa chiqishga tayinlash so'rovlari endi bitta izchil sessiyaga tegishli bo'lmagan render qilingan sahifani keltirib chiqarishi mumkin.