Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    12

    Parsing HTML per software Java

    Salve a tutti, scrivo per la prima volta su questo forum e colgo l'occasione per salutare tutti i membri.

    Veniamo al dunque: sto realizzando un piccolo software in Java per elaborazione di pronostici sportivi in grado di interfacciarsi con un DataBase MySQL.
    Il mio problema è effettuare il parsing di pagine html per estrapolare dati riguardanti le classifiche e le quote dei singoli eventi.

    Qualcuno potrebbe darmi qualche dritta?

    Grazie anticipatamente a tutti.

    P.S. Se qualcuno è interessato a collaborare sarà ben accetto

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ciao e benvenuto.
    Comincia leggendo il regolamento del forum: se cerchi una collaborazione, c'è una sezione apposita, altrimenti nelle sezioni "software" si tratta di codice. Venendo alla tua domanda: non c'è bisogno di reinventare la ruota, esistono già svariati parser HTML in java. Ti basta fare una ricerca in internet, e salteranno fuori un po' di progetti (quasi sempre gratuiti). Leggi le specifiche e vedi se qualcuno soddisfa le tue necessità. Se poi hai domande su codice che non si comporta come si deve, torna e posta qualcosa di concreto, così ti possiamo aiutare.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    12
    Ciao grazie per la risposta e mi scuso se ho posto la domanda in maniera errata.

    Comunque stavo provando a utilizzare Jsoup e ad esempio sul sito: http://www.softvision.it/servizi/sco....asp?gestore=2 non riesco a fare il parser della tabella in quanto non c'è un id o una Class.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Prova a guardare qui:
    http://jsoup.org/cookbook/extracting...dom-navigation

    C'è un metodo getElementsByTag che forse potrebbe aiutarti. Dovrai comunque discriminare quale tabella sia quella di tuo interesse, però è già un inizio.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    12
    Credo di aver capito il motivo per cui non riesco a parsare. Allora, praticamente quando mi connetto da browser alla pagina, questa impiega qualche secondo per restituirmi la tabella html di mio interesse. La connessione da codice evidentemente è più "veloce" quindi tramite la ricerca per Tag non riesco a trovare quella tabella. C'è qualche modo per inserire una sorta di wait?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    12
    Nessuno mi può aiutare?

  7. #7
    non mi sembra che ci sia nessun wait e onestamente mi sembra alquanto strano questo errore.
    Sei sicuro non dipenda da qualcos'altro?
    un'eccezione non gestita o qualche tag che ti ritorna un altra informazione.
    Ci ho lavorato per 6 mesi con questa libreria e non ho mai avuto nessuno di questi problemi.
    Posta un pò di codice magari si riesce a capire meglio.
    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    12
    codice:
    Document doc;
        try{
            //Document doc = Jsoup.parse(new java.net.URL(link).openStream(), "ISO-8859-1", link); 
            org.jsoup.Connection con =Jsoup.connect(link);
            
            doc=con.get();
            Elements tables = doc.select("table");
            //Document doc=Jsoup.connect(link).timeout(10000).get();
            //Element tbody = doc.getElementsByTag("table[width=580]");
            int i=0;
            for (Element table: tables){
                //Elements row=table.getElementsByClass("crd");
            for (Element row : table.getElementsByTag("tr")){
                Elements trs =row.select("td");
                System.out.println(trs.get(0));
            }
            }

    Questa è una parte del codice. Quello che mi stampa il println è quello che viene stampato se da browser faccio tasto Dx -> Ispeziona elemento prima che venga caricata la tabella.
    Ultima modifica di LeleFT; 01-09-2014 a 14:39 Motivo: Aggiunti i tag CODE

  9. #9
    A me sembra che abbiano messo qualche blocco che non permette il download dei pronostici se non sei all'interno del loro dominio.
    lo dice chiaramente:
    codice:
     <!-- INIZIO CODICE -->      <table align="center">
          <tbody>
           <tr>
            <td> <span id="myElem5"></span> Servizio disponibile all'interno del software <a href="../../software/scommesse/scommesse.asp">Softvision Scommesse</a> <script language="javascript" src="http://servizi.neltuosito.it/Quote_Scommesse.asp?UserID=softvision">
    </script></td>
           </tr>
          </tbody>
         </table> 
         <!-- FINE CODICE --> </td>
    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    12
    Capito, secondo te come posso cercare un sito dove il parsing è possibile? Cerco di spiegarmi meglio.
    Non sono un esperto di parsing html e un neofita di java, che caratteristiche deve avere una pagina web affinchè possa estrapolare i dati?
    Ho bisogno di estrapolare classifiche e quote.

    Grazie!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.