» »

[Java] Kako imitirati spletni brskalnik?

[Java] Kako imitirati spletni brskalnik?

dunker ::

Lep pozdrav vsem skupaj!

V Javi (ali v PHP, če kdo ve za kakšno nadvse primerno knjižnico) bi potreboval sledečo stvar. Želel bi nekakšno imitacijo brskalnika, ki bi mi omogočal, da brskam po željenih URLjih (torej kot odgovor dobivam HTML tekst), da submitam forme preko POST protokola, da po loginu na neko stran držim session in sem na tak način prijavljen ...

Mogoče bi pomagalo nekaj psevdokode. Rad bi nekaj takšnega:

Brskalnik brskalnik = new Brskalnik();
String html_zacetne_strani = brskalnik.pojdiNaUrl("http://www.mobisux.com");
brskalnik.submitajPrekoPOST("http://www.mobisux.com/ubbthreads.php", "Loginname:dunker, Loginpass:mojegeslo, buttlogin:Prijava"); // login preko POST
String html_strani_dosegljive_samo_prijavljenim_uporabnikom = brskalnik.pojdiNaUrl("http://www.mobisux.com/privatno.php");

Torej, ali kdo ve za kakšen razred v Javi (ali PHPju), ki bi mi omogočal takšno imitacijo brskalnika? Oziroma kako bi se tega lotili vi?

Hvala za odgovore!

Anže
  • spremenil: dunker ()

PaX_MaN ::

V javi imaš JDICov JDICPlus SDK, a le za Windows platformo.

arjan_t ::

najlažje boš prišel skozi s curl-jem (je za php tudi), za javo ne vem

BlueRunner ::

Najprej kritika: Uporabljaj Google (klikni za primer poizvedbe). Prvi zadetek, ki sem ga dobil za svojo poizvedbo pa je ravno Java HTTP POST. Nekaj primerov pa dobiš pa tudi na kakšnih starih FAQ straneh.

Potem popravek tvojega vprašanja: To kar si poimenoval "imitacija spletnega brskalnika" je v bistvu samo "HTTP odjemalec". Brkljalniki so samo številčno majhna podmnožica HTTP odjemalcev, vključujejo pa še cel kup stvari, ki te izgleda ne zanimajo.

Poskusi primer, malo eksperimentiraj, potem pa povej, če se ti bo še kje zataknilo.

kopernik ::

Iskati moraš v smeri javanskega browserja. Skratka nekaj, kar omogoča brskanje po spletu. V Javi imaš več odprtokodnih projektov, ki se s tem ukvarjajo, kot na primer Lobo ali pa Jazilla (oba imata tudi podporo za uporabo html engina v lastnih programih). Tukaj imaš primer za Lobo-ta.

dunker ::

Hvala za odgovore, fantje!

Odločil sem se kar za rešitev z uporabo PHP in cURL. Za osnovno sem si vzel dva razreda, eHttpClient in cURL, ki ga je nekdo objavil kar na php.net v komentarjih.

Iz teh dveh razredov sem si naredil svoj hibridni razred in po prvih testiranjih zadeva seka in omogoča vse, kar potrebujem (GET, POST, sledenje redirectom, cookies, držanje sessiona, ...). Hvala še enkrat za nasvete!

@BlueRunner: Se strinjam s tabo glede poimenovanja, ampak sem računal na večji response rate na tejle temi, če jo poimenujem tako, da bo večina že ob prvem pogledu vedela, za kaj gre. Svoj hibridni razred sem poimenoval anzeHttpClient.php, če te s tem kaj bolj prepričam. :D


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Web crawler

Oddelek: Programiranje
71460 (593) b3D_950
»

Kateri programski jezik

Oddelek: Programiranje
142195 (1615) _Dormage_
»

ajax klic - php - varnost

Oddelek: Izdelava spletišč
9964 (846) misek
»

[PHP] Uporaba cURL s HTTPS

Oddelek: Programiranje
111698 (1441) JercSI
»

Pošiljanje podatkov v PHP-u

Oddelek: Programiranje
71297 (1145) rokpok

Več podobnih tem