Oppure

Loading
26/07/11 21:41
crashoverride
Ciao, ho provato a ottenere dei dati da una pagina di Amazon ma qualcosa fa problemi.
Il codice è questo:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URLConnection;
import java.net.URL;

public class Bot {

	public static void main(String[] args) throws IOException {
	
		BufferedReader buff;
		InputStreamReader inStream;
		String htmlCode = null;
		try{
			URL url = new URL("http://www.amazon.it/gp/bestsellers/electronics/473246031/ref=s9_dnav_bw_ir12_z?pf_rd_m=A11IL2PNWYJU7H&pf_rd_s=center-1&pf_rd_r=1VC27Z69NFM1FJAR2YNY&pf_rd_t=101&pf_rd_p=245982287&pf_rd_i=412609031");
			URLConnection urlConnection = (URLConnection)url.openConnection();
			
			
			
			inStream = new InputStreamReader(urlConnection.getInputStream());
			buff = new BufferedReader(inStream);
			
			while(true){
				if (buff.readLine()!=null){
					htmlCode += buff.readLine() + "\n";
				}else{
					break;
				}
			}
			
			int startFrom = htmlCode.indexOf("<div class=\"zg_rank\">");
			int endFrom = htmlCode.indexOf("</div>");
			
			String idNumber = htmlCode.substring(startFrom, endFrom);
			
			System.out.println("idNumber");
		}catch(Exception e){};	
			
	}

}


E dovrebbe stampare il contenuto di queste Div tag
<div class="zg_rank">1</div>
C'è ne sono 20 guardando il source code con Firebug però una volta che ho finito di leggere dati dal BufferedReader se poi stampo la stringa che ho fatto non è uguale al codice che mi viene visualizzato con Firebug quindi il tuttto non funziona.

Sapete come posso mettere apposto il tutto??

Grazie.
aaa
29/07/11 8:20
Bonny
prova cosi forse funziona :
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.sql.SQLException;

public class Main {

    private URL url;
    private URLConnection con;
    private String record;
    private String htmlCode = "";

    public Main() {

        try {

            url = new URL("http://www.amazon.it/gp/bestsellers/electronics/473246031/ref=s9_dnav_bw_ir12_z?pf_rd_m=A11IL2PNWYJU7H&pf_rd_s=center-1&pf_rd_r=1VC27Z69NFM1FJAR2YNY&pf_rd_t=101&pf_rd_p=245982287&pf_rd_i=412609031");
            con = (URLConnection) url.openConnection();

            InputStream in = con.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(in));

            record = br.readLine();
            while (record != null) {
                // System.out.println(record);
                htmlCode += record;
                record = br.readLine();
            }
            in.close();
            int startFrom = htmlCode.indexOf("<div class=\"zg_rank\">");
            int endFrom = htmlCode.indexOf("</div>");

            String idNumber = htmlCode.substring(startFrom, endFrom);
            //oppure
            /* 
            int i;
            do {
            i = br.read();
            System.out.print((char) i);
            } while (i != -1);
             */
        } catch (Exception ex) {
            System.err.println(ex.getMessage());
        }
    }
    public static void main(String[] args) throws SQLException {
        Main m = new Main();
    }
}
aaa