Marrja e një faqeje përmes një proxy HTTP në jsoup
Përdor API-n e proxy HTTP në nivel kërkese të jsoup dhe krijo kërkesa të veçanta kur disa punëtorë ndajnë cilësimet e sesionit.
jsoup mund ta marrë faqen përmes një proxy HTTP dhe ta analizojë përgjigjen në të njëjtin thirrje:
Document page = Jsoup.connect("https://www.example.com/")
.proxy("proxy.example", 8080)
.get();
Emri i hostit dhe porta me numër të plotë identifikojnë proxy-n. Për kërkesat e lejuara drejt faqeve publike, zgjidh një pikë fundore HTTP nga shërbimi yt ose nga lista e proxy-ve HTTP. URL-ja e dhënë connect mbetet faqja që dëshiron. Nuk të duhet ta shkarkosh HTML-në në një varg me një URLConnection të veçantë vetëm për të shtuar këtë rrugë.
proxy(String, int) zgjedh një proxy HTTP për atë kërkesë. Një numër porte si 1080 nuk e ndryshon protokollin në SOCKS; pika fundore e proxy-t duhet të flasë llojin që po konfigurohet. jsoup gjithashtu ofron një mbingarkesë që pranon java.net.Proxy, por mbështetja për një rrugë të caktuar varet ende nga implementimi HTTP që përdoret.
Jepi çdo punëtori kërkesën e vet
Një opsion në nivel kërkese e lehtëson punën paralele më shumë sesa ndryshimi i vetive të sistemit JVM rreth çdo shkarkimi. Mbaje kërkesën e ndryshueshme të veçantë për çdo punëtor. jsoup modern mund të ndajë cilësimet dhe depon e cookie-ve të një sesioni ndërsa krijon një kërkesë të re:
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();
Thirrjet më sipër ekzekutohen në sekuencë për qartësi. Nëse puna shpërndahet njëkohësisht, krijo kërkesat në mënyrë të pavarur në vend që të ndryshosh proxy-n në një Connection që është në ecuri. Një sesion i ndarë ndan edhe cookie-t; përdor sesione të ndryshme kur identitetet e shfletimit duhet të mbeten të veçanta.
Këto ndërfaqe janë të pranishme në jsoup 1.21.2. Ndërfaqja newRequest() pa argumente daton nga 1.14.1, prandaj një aplikacion më i vjetër duhet të kontrollojë varësinë e tij përpara se të miratojë shembullin me sesion.
Kredencialet janë një kërkesë shtesë për një proxy të vërtetuar. Zgjedhja e suksesshme e rrugës nuk ofron një llogari, dhe marrja e një sfide proxy është e ndryshme nga dështimi për t'u lidhur me portën e saj.