Pridobivanje strani prek proxyja HTTP v jsoup
Uporabi jsoupov API proxyja HTTP na ravni zahteve in ustvari ločene zahteve, ko več delavcev deli nastavitve seje.
jsoup lahko pridobi stran prek proxyja HTTP in analizira odgovor v istem klicu:
Document page = Jsoup.connect("https://www.example.com/")
.proxy("proxy.example", 8080)
.get();
Ime gostitelja in celoštevilski vrata določata proxy. Za dovoljene zahteve do javnih strani izberi končno točko HTTP iz svoje storitve ali s seznama proxyjev HTTP. URL, posredovan v connect, ostane stran, ki jo želiš. HTML-ja ni treba prenesti v niz z ločenim URLConnection samo zato, da bi dodal to pot.
proxy(String, int) izbere proxy HTTP za to zahtevo. Številka vrat, kot je 1080, ne spremeni protokola v SOCKS; končna točka proxyja mora govoriti vrsto, ki se nastavlja. jsoup ponuja tudi preobremenitev, ki sprejme java.net.Proxy, vendar je podpora za določeno pot še vedno odvisna od uporabljene implementacije HTTP.
Vsakemu delavcu daj njegovo lastno zahtevo
Možnost na ravni zahteve olajša vzporedno delo bolj kot spreminjanje sistemskih lastnosti JVM okoli vsakega prenosa. Hrani spremenljivo zahtevo ločeno za vsakega delavca. Sodobni jsoup lahko deli nastavitve in shrambo piškotkov seje, medtem ko ustvarja novo zahtevo:
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();
Zgornji klici se izvajajo zaporedno zaradi jasnosti. Če je delo razporejeno sočasno, ustvari zahteve neodvisno, namesto da bi spreminjal proxy na enem Connectionu, ki se izvaja. Deljena seja deli tudi piškotke; uporabi različne seje, kadar morajo identitete brskanja ostati ločene.
Ti vmesniki so prisotni v jsoup 1.21.2. Vmesnik newRequest() brez argumentov izvira iz 1.14.1, zato naj starejša aplikacija pred prevzemom primera seje preveri svojo odvisnost.
Poverilnice so dodatna zahteva za overjen proxy. Uspešna izbira poti ne zagotovi računa, prejetje izziva proxyja pa se razlikuje od neuspešne povezave z njegovimi vrati.