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.