jsoup може отримати сторінку через HTTP-проксі та розібрати відповідь у тому самому виклику:

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

Ім’я хоста та цілочисельний порт визначають проксі. Для дозволених запитів до публічних сторінок виберіть HTTP-кінцеву точку зі свого сервісу або зі списку HTTP-проксі. URL, переданий у connect, залишається потрібною вам сторінкою. Щоб додати цей маршрут, не потрібно завантажувати HTML у рядок через окремий URLConnection.

proxy(String, int) вибирає HTTP-проксі для цього запиту. Номер порту, наприклад 1080, не змінює протокол на SOCKS; кінцева точка проксі має підтримувати налаштовуваний тип. jsoup також надає перевантаження, що приймає java.net.Proxy, але підтримка конкретного маршруту все ще залежить від використовуваної реалізації HTTP.

Дайте кожному працівнику власний запит

Опція на рівні запиту полегшує паралельну роботу порівняно зі зміною системних властивостей JVM навколо кожного завантаження. Тримайте змінний запит окремо для кожного працівника. Сучасний jsoup може спільно використовувати налаштування та сховище cookie сеансу, створюючи новий запит:

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, що виконується. Спільний сеанс також спільно використовує cookie; використовуйте різні сеанси, коли ідентичності перегляду мають залишатися роздільними.

Ці інтерфейси присутні в jsoup 1.21.2. Інтерфейс newRequest() без аргументів походить із 1.14.1, тому старіша програма має перевірити свою залежність, перш ніж ухвалювати приклад із сеансом.

Облікові дані є додатковою вимогою для автентифікованого проксі. Успішний вибір маршруту не надає облікового запису, а отримання запиту автентифікації від проксі відрізняється від неспроможності підключитися до його порту.

Схожі статті