Ragazzi, ho un programma che deve recuperare l'html di diverse pagine web, dove nell'url ci sono i get per formare la query e mostrare i risultati.
Inserendo i singoli Url tutto vā come deve, il vero problema č quando i risultati mostrati su queto sito si dividono in pių pagine (di cui conosco giā a priori gli url).
Infatti, mentre se per la prima pagina tutto vā come deve, quando tento di visualizzare le pagine successive Java mi restituisce sempre e cmq la prima pagina.
Non č un problema di url, anche perchč ho provato la seguente operazione. Aprire la prima pagina dei risultati, clikkare su next per andare alla pagina 2 , prendere l'url. Chiudere Firefox, riaprirlo e reincollare l'url per la pagina due. La pagina che mi si visualizza č sempre e comunque la prima.
Credo sia un problema di sessione. Se la sessione non rimane aperta non vengono visualizzate le pagine successive ma sempre e solo la prima.
Domanda: Come mantengo in java aperta la sessione e una volta aperta la pagina uno... dire al programma di andare a copiare l'html della pagina successiva?
Spero di essere stato chiaro.
Vi allego cmq il metodo che apre le varie pagine, passando nel metodo l'indirizzo url.
codice:package control; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class getUrl { public void downloadFromUrl (URL url, String localFilename, boolean bool) throws IOException{ InputStream is = null; FileOutputStream fos = null; try { URLConnection urlConn = url.openConnection (); urlConn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 4.0; Windows NT)"); is = urlConn.getInputStream (); fos = new FileOutputStream ("Ricerca Risultati/" + localFilename+ ".txt", bool); byte[] buffer = new byte[1024]; int len; while ((len = is.read (buffer)) > 0) fos.write (buffer, 0, len); } finally { try { if (is != null) is.close (); } finally { if (fos != null) fos.close (); } } } }

Rispondi quotando

