ਹਰ ਪ੍ਰੌਕਸੀ ਸੈਸ਼ਨ ਲਈ ਇੱਕ Ruby Mechanize ਏਜੰਟ ਰੱਖੋ
Ruby Mechanize ਏਜੰਟ ਦਾ ਪ੍ਰੌਕਸੀ ਇੱਕ ਵਾਰ ਸੈੱਟ ਕਰੋ, ਸੰਬੰਧਿਤ ਬੇਨਤੀਆਂ ਲਈ ਦੁਬਾਰਾ ਵਰਤੋ, ਅਤੇ ਕੂਕੀ ਸਥਿਤੀ ਤੇ ਲਗਾਤਾਰ ਕਨੈਕਸ਼ਨ ਜਾਣਬੁੱਝ ਕੇ ਸੀਮਿਤ ਰੱਖੋ।
ਜੇ ਕੰਮ HTTP ਜਵਾਬਾਂ ਦੀ ਜਾਂਚ ਕਰਨਾ ਅਤੇ ਆਮ ਲਿੰਕਾਂ ਦਾ ਪਿੱਛਾ ਕਰਨਾ ਹੈ, ਤਾਂ ਪੂਰਾ ਬ੍ਰਾਊਜ਼ਰ ਹਮੇਸ਼ਾ ਲੋੜੀਂਦਾ ਨਹੀਂ ਹੁੰਦਾ। Ruby Mechanize ਉਹ ਬੇਨਤੀਆਂ ਕਰਨ ਵਾਲੇ ਏਜੰਟ ਉੱਤੇ ਪ੍ਰੌਕਸੀ ਨੂੰ ਖੋਲ੍ਹਦਾ ਹੈ:
agent = Mechanize.new('office-route')
begin
agent.set_proxy('proxy.example', 8080)
page = agent.get('https://www.example.com/')
puts page.code
ensure
agent.shutdown
endਇਹ ਮੰਨਦਾ ਹੈ ਕਿ mechanize ਲਾਇਬ੍ਰੇਰੀ ਲੋਡ ਹੈ। ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਪੰਨਾ ਜਾਂਚ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਉਦਾਹਰਨ ਲਈ ਢੁਕਵੇਂ ਹੋਸਟ/ਪੋਰਟ ਮੁੱਲ ਦਿੰਦੀ ਹੈ। proxy ਢੰਗ endpoint ਨੂੰ ਲੋੜ ਪੈਣ 'ਤੇ ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਤੇ ਪਾਸਵਰਡ ਨੂੰ ਲਾਜ਼ਮੀ ਨਹੀਂ ਤੀਜੇ ਤੇ ਚੌਥੇ ਆਰਗਿਊਮੈਂਟ ਵਜੋਂ ਵੀ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।
ਇੱਕੋ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸੈਸ਼ਨ ਦੀਆਂ ਬੇਨਤੀਆਂ ਲਈ ਸੰਰਚਿਤ ਏਜੰਟ ਦੁਬਾਰਾ ਵਰਤੋ। ਇਹ ਕੂਕੀਜ਼ ਤੇ ਇਤਿਹਾਸ ਦੇ ਨਾਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵੀ ਲੈ ਕੇ ਚੱਲਦਾ ਹੈ। ਐਗਜ਼ਿਟ ਪ੍ਰੌਕਸੀ ਬਦਲਣ ਨਾਲ ਆਪਣੇ ਆਪ ਨਵੀਂ ਪਛਾਣ ਨਹੀਂ ਬਣਦੀ ਜਾਂ ਲੌਗਇਨ ਕੂਕੀ ਨਹੀਂ ਸੁੱਟੀ ਜਾਂਦੀ।
ਕਈ ਪ੍ਰੌਕਸੀ ਸੈਸ਼ਨਾਂ ਲਈ, ਕੰਮ ਚੱਲਦਿਆਂ ਇੱਕ ਸਾਂਝਾ ਏਜੰਟ ਬਦਲਣ ਦੀ ਬਜਾਏ ਹਰ ਇੱਕ ਨੂੰ ਆਪਣਾ ਏਜੰਟ ਦਿਓ। ਵੱਖਰੇ SSL ਕਨੈਕਸ਼ਨ ਲੋੜੀਂਦੇ ਹੋਣ 'ਤੇ ਲਾਇਬ੍ਰੇਰੀ ਵਿਲੱਖਣ ਕਨੈਕਸ਼ਨ ਨਾਮ ਵੀ ਦਰਜ ਕਰਦੀ ਹੈ; ਉਦਾਹਰਨ ਵਿੱਚ ਕੰਸਟ੍ਰਕਟਰ ਦਾ ਨਾਮ ਉਸ ਚੋਣ ਨੂੰ ਸਪਸ਼ਟ ਕਰਦਾ ਹੈ।
ਸੰਬੰਧਿਤ URL ਜਾਂਚਾਂ ਨੂੰ ਪ੍ਰੌਕਸੀ ਅਨੁਸਾਰ ਸਮੂਹਿਤ ਕਰਨ ਨਾਲ ਬੇਲੋੜੀ ਮੁੜ-ਸੰਰਚਨਾ ਘਟ ਸਕਦੀ ਹੈ। ਨਤੀਜੇ ਨੂੰ ਉਸ ਮਾਰਗ ਅਤੇ URL ਨਾਲ ਜੋੜ ਕੇ ਰੱਖੋ ਜਿਸਨੇ ਇਹ ਪੈਦਾ ਕੀਤਾ, ਰੀਡਾਇਰੈਕਟ ਅਤੇ ਗਲਤੀ ਜਵਾਬਾਂ ਸਮੇਤ।
Mechanize ਬ੍ਰਾਊਜ਼ਰ ਦੀ JavaScript ਚੱਲਣਾ ਦੁਬਾਰਾ ਨਹੀਂ ਬਣਾਉਂਦਾ। ਜਦੋਂ ਪਰਖਿਆ ਜਾ ਰਿਹਾ ਵਿਵਹਾਰ ਸਕ੍ਰਿਪਟਾਂ, ਰੈਂਡਰਿੰਗ ਜਾਂ ਬ੍ਰਾਊਜ਼ਰ-ਖਾਸ ਪ੍ਰਮਾਣਿਕਤਾ 'ਤੇ ਨਿਰਭਰ ਹੋਵੇ ਤਾਂ ਅਸਲ ਬ੍ਰਾਊਜ਼ਰ ਵਰਤੋ। ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਸਫਲ HTTP ਫੈਚ ਇਸ ਸੰਕੁਚਿਤ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਕਿ ਇਹ ਏਜੰਟ ਉਹ ਬੇਨਤੀ ਕਰ ਸਕਿਆ।