Puslapio gavimas per HTTP tarpinį serverį jsoup
Naudokite jsoup HTTP tarpinio serverio API užklausos lygmeniu ir kurkite atskiras užklausas, kai keli darbininkai dalijasi sesijos nustatymais.
jsoup gali gauti puslapį per HTTP tarpinį serverį ir išanalizuoti atsakymą tame pačiame kvietime:
Document page = Jsoup.connect("https://www.example.com/")
.proxy("proxy.example", 8080)
.get();
Tarpinį serverį identifikuoja pagrindinio kompiuterio vardas ir sveikasis prievadas. Leidžiamoms viešų puslapių užklausoms pasirinkite HTTP galinį tašką iš savo paslaugos arba iš HTTP tarpinių serverių sąrašo. URL, perduotas connect, lieka puslapiu, kurio norite. Nereikia atsisiųsti HTML į eilutę atskiru URLConnection vien tam, kad pridėtumėte šį maršrutą.
proxy(String, int) pasirenka HTTP tarpinį serverį tai užklausai. Prievado numeris, pavyzdžiui 1080, nekeičia jo protokolo į SOCKS; tarpinio serverio galinis taškas turi kalbėti konfigūruojamą tipą. jsoup taip pat siūlo perkrovą, priimančią java.net.Proxy, tačiau konkretaus maršruto palaikymas vis dar priklauso nuo naudojamos HTTP implementacijos.
Duokite kiekvienam darbininkui savo užklausą
Užklausos lygmens parinktis palengvina lygiagretų darbą labiau nei JVM sistemos savybių keitimas aplink kiekvieną atsisiuntimą. Laikykite kintamą užklausą atskirai kiekvienam darbininkui. Šiuolaikinis jsoup gali dalytis sesijos nustatymais ir slapukų saugykla kurdamas naują užklausą:
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();
Aukščiau pateikti kvietimai vykdomi nuosekliai dėl aiškumo. Jei darbas paskirstomas vienu metu, kurkite užklausas nepriklausomai, o ne keiskite tarpinį serverį viename vykdomame Connection. Bendra sesija taip pat dalijasi slapukais; naudokite skirtingas sesijas, kai naršymo tapatybės turi likti atskiros.
Šios sąsajos yra jsoup 1.21.2. Sąsaja newRequest() be argumentų atsirado 1.14.1, todėl senesnė programa turėtų patikrinti savo priklausomybę prieš priimdama sesijos pavyzdį.
Prisijungimo duomenys yra papildomas reikalavimas autentifikuotam tarpiniam serveriui. Sėkmingas maršruto pasirinkimas nepateikia paskyros, o tarpinio serverio iššūkio gavimas skiriasi nuo nesugebėjimo prisijungti prie jo prievado.