برای هر منبع Splash یک پروکسی انتخاب کنید
وقتی منابع جداگانه به مسیرهای متفاوت نیاز دارند، پروکسی Splash را در سطح رندر یا در فراخوانی on_request انتخاب کنید.
یک درخواست Scrapy میتواند با موفقیت به Splash برسد، در حالی که مرورگر داخل Splash هنوز به مسیر خروجی متفاوتی نیاز دارد. اینها دو اتصال هستند:
Scrapy → Splash API
Splash browser → forward proxy → websiteبرای یک پروکسی به ازای هر رندر، آرگومان proxy مربوط به HTTP API را بفرستید. Splash 3.5 نشانی پروکسی مانند http://proxy.example:8080 یا نام یک پروفایل پروکسی پیکربندیشده را مستند میکند. قالب نشانی آن 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 را بهعنوان نشانی دقیق منبعی که باید جداگانه مسیریابی شود بفرستید. وقتی دو شنونده متفاوتاند، تنها پورت مثال را جایگزین کنید. سایر منابع مسیر پیشفرض را دریافت میکنند. فهرست پروکسی HTTP برای این فیلدهای میزبان و پورت کاندیدهای نقطه پایانی ارائه میدهد، زمانی که مسیرهای منابع عمومی مجاز باشند و هیچ اعتبارنامه پروکسی روی کاندیدها اعمال نشود.
متد request فیلدهای اختیاری username و password را میپذیرد. با نوع HTTP، مقصدهای HTTPS از CONNECT از طریق همان پروکسی HTTP استفاده میکنند؛ به نوع پروکسی HTTPS ساختگی نیازی ندارند.
فراخوانی پیش از هر درخواست اجرا میشود. متدهای request آن نمیتوانند درخواستی را پس از ارسال تغییر دهند، و فراخوانی نمیتواند متدهای ناهمگام Splash مانند splash:go یا splash:wait را صدا بزند.
وقتی صفحه انتظار یک نشست یا یک هویت منبع را دارد، انتخاب مسیر را پایدار نگه دارید. اختصاص تصادفی هر تصویر و درخواست API به خروجی دیگر میتواند صفحهای رندرشده بسازد که درخواستهایش دیگر به یک نشست منسجم تعلق ندارند.