Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.239 pregleda

Najnovija ↓

Problem sa parsiranjem dugačkog streama 01.08.2005. u 12:44 · pre 258 meseci
izmenjeno 1 put, poslednji put tiranin 01.08.2005. u 12:46
  1. tiranin01.08.2005. u 12:46zapis iz teksta poruke
#1
Hoću da parsiram jednu html stranicu, koja je mnogo velika, preko 300K.
Napravio sam klase za parsiranje i kada uradim Save as, i prebacim html na lokalni računar, sve radi bez greške.
Međutim, kada hoću da tu html stranicu učitavam preko
Code:

UTL url = new URL("http://nekaadresa/neki.html");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()):

nekad radi, a nekad ne.
Da malo pojasnim.
Da ne bih imao buffer od preko 300K, učitavam sa reader.read(buffer,0,size) deo po deo tog html fajla, predam klasi za parsiranje, parsiram taj deo, ostatku dodam sledeću porciju i tako dalje.
I, ponavljam, na taj način, kada mi je BufferedReader za neki lokalni fajl sve lepo radi. Znači nije greška u algoritmu, osim ...
E, to osim me muči. Pretpostavljam da mi nešto sa sinhronizacijom nije u redu, jer naravno preko mreže nekad stvari idu sporije, a nekad ne. Nisu uvek isti delovi html preskočeni, a nisam uspeo da ukačim šta fali. Testno sam napravio veeeliki buffer, 400K, i sve učitao u komadu i greške nema. U parčićima, kada je fajl u lokalu, opet greške nema.
Ima li neko generalno ideju šta da promenim u pristupu. Ili kakav link na slične probleme da pogledam gde sam nešto propustio.
Re: Problem sa parsiranjem dugačkog streama 12.08.2005. u 01:12 · pre 258 meseci #2
pozdrav,

ako parsiras html moze se desiti da u delu fajla koji si ucitao imas "open tag" a da "closing tag" jos nije ucitan. proveri kako "handlujes" takve slucajeve.
ja sam napravio program koji radi slicnu stvar (ucitava html stranu, pretrazi je, pa ako ucitana strana ima referencu na drugu stranu, ucitaje i td..) ali nisam imao takve probleme (moja veza je high-speed sto moze imati uticaj).
Re: Problem sa parsiranjem dugačkog streama 12.08.2005. u 09:44 · pre 258 meseci #3
Rešio sam problem, ali zbog zastoja na ESu nisam mogao da ga postujem.
Našao sam neku diskusiju na Google, lik kao da je prepisao moj kod i imao isti problem. I njemu posavetovaše. a i ja primenih, umesto
Code:

reader.read(buffer,0,duzina);


sam stavio
Code:

reader.readLine();

i sve fino radi.
Kako sam pročitao u toj diskusiji, moguće je da mi dvobajtni karakter ostane presečen ...da ne dužim priču.
Ja sam hteo da brže učitam, ali je readLine() kažu bolji jer lepo dekodira, sklanja neprintabilne karaktere ...
Eto, vrlo jednostavno rešenje, ali mi je problem zadao puno glavobolje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme