Dohvaćanje stranice kroz HTTP proxy u jsoup-u
Koristite jsoup HTTP proxy API na razini zahtjeva i stvarajte odvojene zahtjeve kada više radnika dijeli postavke sesije.
jsoup može dohvatiti stranicu kroz HTTP proxy i analizirati odgovor u istom pozivu:
Document page = Jsoup.connect("https://www.example.com/")
.proxy("proxy.example", 8080)
.get();
Naziv hosta i cjelobrojni port identificiraju proxy. Za dopuštene zahtjeve prema javnim stranicama odaberite HTTP završnu točku iz svoje usluge ili s popisa HTTP proxyja. URL predan u connect ostaje stranica koju želite. Nije potrebno preuzimati HTML u niz zasebnim URLConnectionom samo da biste dodali ovu rutu.
proxy(String, int) odabire HTTP proxy za taj zahtjev. Broj porta kao što je 1080 ne mijenja njegov protokol u SOCKS; završna točka proxyja mora govoriti vrstu koja se konfigurira. jsoup također nudi preopterećenje koje prihvaća java.net.Proxy, ali podrška za određenu rutu još uvijek ovisi o HTTP implementaciji koja se koristi.
Dajte svakom radniku vlastiti zahtjev
Opcija na razini zahtjeva olakšava paralelan rad od mijenjanja sistemskih svojstava JVM-a oko svakog preuzimanja. Držite promjenjivi zahtjev odvojenim za svakog radnika. Suvremeni jsoup može dijeliti postavke sesije i spremište kolačića dok stvara novi zahtjev:
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();
Gornji pozivi izvode se uzastopno radi jasnoće. Ako se posao raspoređuje istodobno, stvarajte zahtjeve neovisno umjesto da mijenjate proxy na jednom Connectionu koji je u tijeku. Dijeljena sesija dijeli i kolačiće; koristite različite sesije kada identiteti pregledavanja trebaju ostati odvojeni.
Ta su sučelja prisutna u jsoup-u 1.21.2. Sučelje newRequest() bez argumenata datira iz 1.14.1, pa starija aplikacija treba provjeriti svoju ovisnost prije prihvaćanja primjera sa sesijom.
Vjerodajnice su dodatni uvjet za autentificirani proxy. Uspješan odabir rute ne daje račun, a primanje proxy izazova razlikuje se od neuspjelog povezivanja s njegovim portom.