jsoup HTTP ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਸਫ਼ਾ ਲਿਆ ਸਕਦਾ ਹੈ ਅਤੇ ਉਸੇ ਕਾਲ ਵਿੱਚ ਜਵਾਬ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰ ਸਕਦਾ ਹੈ:

Document page = Jsoup.connect("https://www.example.com/")
    .proxy("proxy.example", 8080)
    .get();

ਹੋਸਟਨਾਮ ਅਤੇ ਪੂਰਨ ਅੰਕ ਪੋਰਟ ਪ੍ਰੌਕਸੀ ਦੀ ਪਛਾਣ ਕਰਦੇ ਹਨ। ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਸਫ਼ਿਆਂ ਦੀਆਂ ਬੇਨਤੀਆਂ ਲਈ ਆਪਣੀ ਸੇਵਾ ਜਾਂ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ HTTP ਐਂਡਪੁਆਇੰਟ ਚੁਣੋ। connect ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ URL ਉਹੀ ਸਫ਼ਾ ਰਹਿੰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ। ਸਿਰਫ਼ ਇਹ ਰਸਤਾ ਜੋੜਨ ਲਈ HTML ਨੂੰ ਵੱਖਰੇ URLConnection ਨਾਲ ਸਤਰ ਵਿੱਚ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ।

proxy(String, int) ਉਸ ਬੇਨਤੀ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਚੁਣਦਾ ਹੈ। 1080 ਵਰਗਾ ਪੋਰਟ ਨੰਬਰ ਇਸਦੇ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ SOCKS ਵਿੱਚ ਨਹੀਂ ਬਦਲਦਾ; ਪ੍ਰੌਕਸੀ ਐਂਡਪੁਆਇੰਟ ਨੂੰ ਉਹੀ ਕਿਸਮ ਬੋਲਣੀ ਚਾਹੀਦੀ ਹੈ ਜੋ ਸੰਰਚਿਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। jsoup java.net.Proxy ਸਵੀਕਾਰ ਕਰਨ ਵਾਲਾ ਓਵਰਲੋਡ ਵੀ ਦਿੰਦਾ ਹੈ, ਪਰ ਕਿਸੇ ਖਾਸ ਰਸਤੇ ਦਾ ਸਮਰਥਨ ਅਜੇ ਵੀ ਵਰਤੇ ਜਾ ਰਹੇ HTTP ਲਾਗੂਕਰਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।

ਹਰ ਵਰਕਰ ਨੂੰ ਆਪਣੀ ਬੇਨਤੀ ਦਿਓ

ਬੇਨਤੀ-ਪੱਧਰੀ ਵਿਕਲਪ ਹਰ ਡਾਊਨਲੋਡ ਦੁਆਲੇ JVM ਸਿਸਟਮ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬਦਲਣ ਨਾਲੋਂ ਸਮਾਨਾਂਤਰ ਕੰਮ ਨੂੰ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ। ਬਦਲਣਯੋਗ ਬੇਨਤੀ ਹਰ ਵਰਕਰ ਲਈ ਵੱਖਰੀ ਰੱਖੋ। ਆਧੁਨਿਕ jsoup ਨਵੀਂ ਬੇਨਤੀ ਬਣਾਉਂਦਿਆਂ ਸੈਸ਼ਨ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਅਤੇ ਕੂਕੀ ਭੰਡਾਰ ਸਾਂਝੇ ਕਰ ਸਕਦਾ ਹੈ:

Connection session = Jsoup.newSession();
Document first = session.newRequest()
    .url("https://www.example.com/one")
    .proxy("proxy-a.example", 8080)
    .get();
Document second = session.newRequest()
    .url("https://www.example.com/two")
    .proxy("proxy-b.example", 8080)
    .get();

ਉੱਪਰ ਦਿੱਤੀਆਂ ਕਾਲਾਂ ਸਪਸ਼ਟਤਾ ਲਈ ਲਗਾਤਾਰ ਚੱਲਦੀਆਂ ਹਨ। ਜੇ ਕੰਮ ਇੱਕੋ ਸਮੇਂ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਚੱਲ ਰਹੇ ਇੱਕ Connection ਉੱਤੇ ਪ੍ਰੌਕਸੀ ਬਦਲਣ ਦੀ ਥਾਂ ਬੇਨਤੀਆਂ ਸੁਤੰਤਰ ਰੂਪ ਵਿੱਚ ਬਣਾਓ। ਸਾਂਝਾ ਸੈਸ਼ਨ ਕੂਕੀਆਂ ਵੀ ਸਾਂਝੀਆਂ ਕਰਦਾ ਹੈ; ਜਦੋਂ ਬ੍ਰਾਊਜ਼ਿੰਗ ਪਛਾਣਾਂ ਵੱਖਰੀਆਂ ਰਹਿਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਤਾਂ ਵੱਖਰੇ ਸੈਸ਼ਨ ਵਰਤੋ।

ਇਹ ਇੰਟਰਫ਼ੇਸ jsoup 1.21.2 ਵਿੱਚ ਮੌਜੂਦ ਹਨ। ਬਿਨਾਂ ਆਰਗਿਊਮੈਂਟ ਵਾਲਾ newRequest() ਇੰਟਰਫ਼ੇਸ 1.14.1 ਤੋਂ ਹੈ, ਇਸ ਲਈ ਪੁਰਾਣੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਸੈਸ਼ਨ ਵਾਲਾ ਉਦਾਹਰਨ ਅਪਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੀ ਨਿਰਭਰਤਾ ਜਾਂਚਣੀ ਚਾਹੀਦੀ ਹੈ।

ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪ੍ਰਮਾਣਿਤ ਪ੍ਰੌਕਸੀ ਲਈ ਇੱਕ ਵਾਧੂ ਲੋੜ ਹਨ। ਸਫਲ ਰਸਤਾ ਚੋਣ ਖਾਤਾ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕਰਦੀ, ਅਤੇ ਪ੍ਰੌਕਸੀ ਚੁਣੌਤੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਇਸਦੇ ਪੋਰਟ ਨਾਲ ਜੁੜਨ ਵਿੱਚ ਅਸਫਲ ਹੋਣ ਤੋਂ ਵੱਖਰਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ