Consiglio su parsing in java

di il
21 risposte

21 Risposte - Pagina 2

  • Re: Consiglio su parsing in java

    schumy2000 ha scritto:


    Al momento sono riuscito a caricare mostrare e dividere tutte le farmacia con un metodo maccheronico:
    
            Document doc = Jsoup.parse(new java.net.URL(url).openStream(), "ISO-8859-1", url); 
            Elements tbody = doc.getElementsByClass("sTestoDettaglio");
            String[] names=rows.text().split("Farmacia");
            int index=0;
            for(String name : names){
                 System.out.println(index+") Farmacia"+name);
                 index++;
            }
    
    Ho guardato attentamente e nella riga della farmacia non c'è alcun particolare tag.
    Quindi mi prendo la riga e visto che la parola Farmacia è l'unica parola comune a tutti le righe divido tutto con la split.
    La riga 0 non devi contarla perché contiene anche il titolo poi sono tutte corretti.
    Molto maccheronico ma in mancanza di tag nella riga della farmacia non si può far altro.

    Direttamente prendo la classe Elements tbody=doc.getElementsByClass("sTestoDettaglio"); così evito altri codici spuri.

    Ciao.

    Ciao schumy2000 ho guardato i tuoi preziosi consigli ed ho risolto con il problema dei ? alla grande
    Poi siccome io voglio prendere in momenti diversi i nomi delle varie farmacie, ho fatto la seguente modifica
       Elements tbody = doc.getElementsByClass("sTestoDettaglio");
    		
    		   String[] names=tbody.text().split("Farmacia");
    	       
    		   System.out.println("Farmacia" + names[2]);
    e cambiando l'indice del vettore mi prendo la farmacia di mio interesse!!!!
    Il tuo aiuto è stato davvero prezioso!!!! grazie mille davvero!!!! sei un grande!!!
  • Re: Consiglio su parsing in java

    Figurati

    Ho il visto il codice di Della e onestamente non conoscevo la notazione
    
     doc.select(".sTestoDettaglio > div > span > span").first();
    
    cosa fai? una ricerca in profondità?

    Ciao.
  • Re: Consiglio su parsing in java

    Si, in pratica si usa la stessa notazione dei CSS: ".sTestoDettaglio > div" significa "prendi tutti i div che sono immediatamente figli degli elementi di classe sTestoDettaglio.
    qua trovi maggiori informazioni


    Sent from my iPhone using Tapatalk
  • Re: Consiglio su parsing in java

    Ciao schumy2000 è sorto un problema per quanto riguarda l'estrazione del nome della farmacia e del suo indirizzo.
    Non sò cosa hanno cambiato sul sito, e adesso usando il codice che mi indicasti tu
     Document doc = Jsoup.parse(new java.net.URL(url).openStream(), "ISO-8859-1", url);
            Elements tbody = doc.getElementsByClass("sTestoDettaglio");
            String[] names=rows.text().split("Farmacia");
            int index=0;
            for(String name : names){
                 System.out.println(index+") Farmacia"+name);
                 index++;
            }
    oltre a stampare correttamente nome e via della farmacia di turno, mi stama anche la riga successiva la quale è contenuta all'interno del tag <br>

    per esempio se mi prendo una particolare farmacia, mi stampa una cosa del genere:

    Farmacia S. Sofia, corso Garibaldi dal 13 luglio al 19 luglio

    La parte in grassetto è la parte in eccesso.
    Cosa potrei fare per eliminarla?
    grazie
  • Re: Consiglio su parsing in java

    schumy2000 ha scritto:


    Al momento sono riuscito a caricare mostrare e dividere tutte le farmacia con un metodo maccheronico:
    
            Document doc = Jsoup.parse(new java.net.URL(url).openStream(), "ISO-8859-1", url); 
            Elements tbody = doc.getElementsByClass("sTestoDettaglio");
            String[] names=rows.text().split("Farmacia");
            int index=0;
            for(String name : names){
                 System.out.println(index+") Farmacia"+name);
                 index++;
            }
    
    Ho guardato attentamente e nella riga della farmacia non c'è alcun particolare tag.
    Quindi mi prendo la riga e visto che la parola Farmacia è l'unica parola comune a tutti le righe divido tutto con la split.
    La riga 0 non devi contarla perché contiene anche il titolo poi sono tutte corretti.
    Molto maccheronico ma in mancanza di tag nella riga della farmacia non si può far altro.

    Direttamente prendo la classe Elements tbody=doc.getElementsByClass("sTestoDettaglio"); così evito altri codici spuri.

    Ciao.
    Ragazzi scusatemi se vi chiedo ancora il vostro aiuto, ma ho sempre il problema di prendere la stringa in cui è riportata la farmacia...
    Avevo risolto il problema lavorando un po sulle stringhe e utilizzando i metodi relativi...ma poi quando il sito viene aggiornata cambia qualche piccolo particolare, e mi costringe a mettere di nuovo mani sul codice. Vorrei trovare una soluzione definitiva in modo tale da non dover cambiare ogni mese il codice e prelevare la singola riga
    Utilizzando questo codice e cambiando l'indice dell'array mi trovo bene QUASI BENE.
    	 String url="http://www.gazzettabenevento.it/Sito2009/dettagliocomunicato.php?Id=26226&vcercaCom=";
    
    			// sfrutta la codifica ISO-8859-1 in modo tale da poter fare l'encode in maniera corretta.
    			  Document doc = Jsoup.parse(new java.net.URL(url).openStream(), "ISO-8859-1", url);   
    			  Elements tbody = doc.getElementsByClass("sTestoDettaglio");
    			  
    		  String[] names=tbody.text().split("Farmacia");
    			  System.out.println("Farmacia" + names[1]);
    			  
    
    ...dico Quasi perché scorrendo l'array mi stampa le farmacie mi stampa anche un pezzo che è relativo alla data della farmacia seguente.

    Per farvi capire se ho queste due farmacie, mi stampa entrambi le frasi in grassetto, io invece voglio solo la prima frase in grassetto

    dal 02 giugno al 06 giugno
    Farmacia Maurizio Manna, corso Vittorio Emanuele. Riposo settimanale 13 e 20 giugno

    dal 07 giugno al 13 giugno

    Farmacia Conte, via Croce Rossa, Rione Capodimonte. Riposo settimanale 20 giugno


    Avevo provato a modificare le stringhe però non è una soluzione affidabile.Per esempio aveva fatto in modo che leggesse fino al "." della frase in questione ma può capitare(come è capitato) che aggiornano il sito e nella frase non vi è più il punto e quindi non funziona più niente.
    Mi aiutereste a trovare una soluzione definitiva per piacere? non so proprio come fare.
  • Re: Consiglio su parsing in java

    Cerco di darti una mano non appena rientrerò in ufficio (5 giugno)

    Ciao
  • Re: Consiglio su parsing in java

    schumy2000 ha scritto:


    cerco di darti una mano non appena rientrerò in ufficio (5 giugno)

    Ciao
    Grazie comunque ora ho risolto sempre agendo sulle stringhe ...perche a quanto pare è l'unica soluzione....e se ho fatto bene i miei calcoli dovrebbe essere più robusta questa soluzione che ho trovato...speriamo bene.
Devi accedere o registrarti per scrivere nel forum
21 risposte