Oldal letöltése HTTP-proxyn keresztül a jsoupban
Használd a jsoup kérés szintű HTTP-proxy API-ját, és hozz létre külön kéréseket, amikor több munkás osztozik a munkamenet beállításain.
A jsoup HTTP-proxyn keresztül töltheti le az oldalt, és ugyanabban a hívásban dolgozhatja fel a választ:
Document page = Jsoup.connect("https://www.example.com/")
.proxy("proxy.example", 8080)
.get();
A gazdagépnév és az egész számú port azonosítja a proxyt. A nyilvános oldalakhoz engedélyezett kérésekhez válassz HTTP végpontot a szolgáltatásodból vagy a HTTP-proxy listából. A connect-nek átadott URL marad az az oldal, amelyet szeretnél. Nem kell a HTML-t külön URLConnectionnel karakterláncba letölteni csak azért, hogy hozzáadd ezt az útvonalat.
A proxy(String, int) HTTP-proxyt választ ehhez a kéréshez. Az olyan portsorszám, mint az 1080, nem változtatja a protokollját SOCKS-ra; a proxy végpontjának azt a típust kell beszélnie, amelyet beállítasz. A jsoup olyan túlterhelést is kínál, amely java.net.Proxy fogad el, de egy adott útvonal támogatása továbbra is a használt HTTP-megvalósítástól függ.
Minden munkás kapja meg a saját kérését
A kérés szintű beállítás könnyebbé teszi a párhuzamos munkát, mint a JVM rendszertulajdonságainak módosítása minden letöltés körül. Tartsd külön a módosítható kérést minden munkás számára. A modern jsoup meg tudja osztani egy munkamenet beállításait és sutitárolóját, miközben új kérést hoz létre:
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();
A fenti hívások az áttekinthetőség kedvéért egymás után futnak. Ha a munkát egyidejűleg osztják szét, a kéréseket önállóan hozd létre, ahelyett hogy egy futó Connection proxyt módosítanál. A megosztott munkamenet a sütiket is megosztja; használj különböző munkameneteket, amikor a böngészési identitásoknak külön kell maradniuk.
Ezek a felületek a jsoup 1.21.2-ben vannak jelen. Az argumentum nélküli newRequest() felület a 1.14.1-ből származik, ezért egy régebbi alkalmazásnak ellenőriznie kell a függőségét, mielőtt átvenné a munkamenetes példát.
A hitelesítő adatok további követelményt jelentenek a hitelesített proxyhoz. A sikeres útvonalválasztás nem biztosít fiókot, és a proxy kihívásának fogadása más, mint a portjához való csatlakozás sikertelensége.