Sto leggendo da un URL nel mio codice java ma la pagina che voglio leggere esegue un comando quando è caricato e InputStreamReader legge la pagina prima che sia completamente caricata, quindi il mio lettore bufferizzato raccoglie solo l'HTML sulla pagina prima che venga caricato il contenuto reale.Attendi il caricamento della pagina prima di leggere il contenuto da un URL in Java
Il mio obiettivo principale è trovare la parola "vendite" nella pagina, ma non posso farlo se lo stream aperto è collegato prima che venga caricata la pagina intera. C'è un modo per aspettare che si carichi o qualcosa del genere?
Ecco il mio codice:
URL url = new URL("http://urlgoeshere.com?"+ withAParam);
URLConnection uc = url.openConnection();
uc.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String inputLine = in.readLine();
int index = -1;
while ((inputLine = in.readLine()) != null){
index=inputLine.toLowerCase().indexOf("sales");
if(index>=0){
log.info("Found sales!");
break;
}
}
if (in != null){
in.close();
}
Questo non ha senso. 'BufferedReader' leggerà la pagina in modo sequenziale finché lo stream non avrà più contenuto. Verrà letto qualsiasi cosa scriva la pagina. Se la pagina è dinamica, continuerà a raccogliere i contenuti. Se le azioni di post-caricamento sono fatte in javascript, questo approccio non funzionerà mai perché non eseguirà o recupererà il javascript. – jiggy