Lettura direttamente da un URL in Java

Quando stampo il contenuto di http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1 , vedo un codice HTML diverso da quello che viene visualizzato quando si utilizza la funzione “Visualizza sorgente” nel mio browser (Chrome , nel mio caso, anche se non penso che l’esatto browser sia importante). Ad esempio, il div con id “result_10” dell’URL sopracitato appare così nel browser di uno:

Ma quando si stampa lo stesso contenuto della pagina web con l’utility java.net.URL di Java, lo stesso div appare in questo modo:

 

Questa è solo una delle molte differenze tra identificatori e struttura di pagina tra l’HTML prodotto dalla lettura a livello di codice di questa pagina e l’utilizzo di un browser. Non sono sicuro se ciò derivi da una sorta di problema di risoluzione degli URL o qualcosa di completamente diverso.

Come posso acquisire lo stesso contenuto della pagina che vedo nel mio browser da un’app Java?

Ecco la funzione che ho utilizzato per leggere gli URL, con “http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1” che rappresenta l’argomento in questione.

 public static void printWebPageContents(String url) throws IOException { URL specifiedUrl = new URL(url); BufferedReader in = new BufferedReader(new InputStreamReader(specifiedUrl.openStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } 

Non esitate a farmi sapere se è necessario qualche chiarimento.

Non sarei sorpreso se avesse a che fare con il tuo User Agent . Non so quale sia l’impostazione predefinita per URL.openStream , ma dubito che sia la stessa di Chrome.