ਹਰ Splash ਸਰੋਤ ਲਈ ਪ੍ਰੌਕਸੀ ਚੁਣੋ
ਜਦੋਂ ਵੱਖਰੇ ਸਰੋਤਾਂ ਨੂੰ ਵੱਖਰੇ ਰਸਤੇ ਚਾਹੀਦੇ ਹੋਣ ਤਾਂ ਰੈਂਡਰ ਪੱਧਰ 'ਤੇ ਜਾਂ on_request ਕਾਲਬੈਕ ਵਿੱਚ Splash ਪ੍ਰੌਕਸੀ ਚੁਣੋ।
ਇੱਕ 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 ਬੇਨਤੀ ਨੂੰ ਬੇਤਰਤੀਬੇ ਤੌਰ 'ਤੇ ਕਿਸੇ ਹੋਰ ਆਉਟਲੈਟ ਨੂੰ ਦੇਣ ਨਾਲ ਅਜਿਹਾ ਰੈਂਡਰ ਕੀਤਾ ਪੇਜ ਬਣ ਸਕਦਾ ਹੈ ਜਿਸਦੀਆਂ ਬੇਨਤੀਆਂ ਹੁਣ ਇੱਕ ਸੁਸੰਗਤ ਸੈਸ਼ਨ ਨਾਲ ਸਬੰਧਿਤ ਨਹੀਂ ਹਨ।