Autore Topic: come estrarre attributo src con Jsoup  (Letto 403 volte)

Offline maoxx

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    motorola atrix
come estrarre attributo src con Jsoup
« il: 28 Marzo 2014, 13:52:57 CET »
0
Ciao a tutti, sto usando Jsoup per estrarre dei valori dal codice html di un sito, e più precisamente,  voglio estrarre il valore src dal tag img che riporto qui sotto:

Codice (XML): [Seleziona]
<tbody>
   
      <tr class="odd">
        <td>
          <script type="text/javascript"><![CDATA[document.write ('<img src="' +encodeURI("http://www.provincia.bz.it/vmz/Report/images/ampel_rot.gif") + '" width="39" height="50" title="Semaforo rosso" alt="Semaforo rosso"/>');//]]></script>
        </td>
        <td>
          <script type="text/javascript"><![CDATA[document.write ('<img src="' + encodeURI("http://www.provincia.bz.it/vmz/Report/images/BEHIND_SPERRE.gif") + '" width="39" height="50" title="intralci viabilità in e fuori Alto Adige chiusura temporanea" alt="intralci viabilità in e fuori Alto Adige chiusura temporanea"/>');//]]></script>
        </td>
        <td class="str">
          <strong>A 22</strong>
        </td>
        <td>
          <h3>
            <strong>Autostrada del  Brennero</strong>
            <span> </span>
          </h3>
          <p>In direzione nord l`uscita di Reggiolo Rolo è CHIUSA dalle ore 10:00 alle ore 12:00 a causa di lavori. </p>
        </td>
        <td> il 28.03.2014</td>
      </tr>

ho usato questo codice per estrarre i valori del tag p e h3, ma non riesco a estrarre il valore src delle immagini presenti nel sito.

Codice (Java): [Seleziona]
Document doc = Jsoup.connect("http://www.provinz.bz.it/traffico/prodotti/bolletino-traffico-testuale.asp")
                                                .timeout(30000).get();
                                Element tabella = doc.getElementsByClass("tbl_verkehrsbericht").first();
                                Elements rigaCompleta = tabella.getElementsByTag("tr");
                                for (Element rigaInfo :  rigaCompleta){
                                        //ottengo i tag td (stato, tipologia, strada, comunicazione, periodo)
                                        Elements rigaComunicazione = rigaInfo.getElementsByTag("td");
                                        //seleziono solo i tag img che sono discendenti di un tag td
                                        Elements rigaStatoImg = rigaComunicazione.select("td > img[title=Semaforo*]");
                                        String prova = rigaStatoImg.attr("src");
                                        Log.v("img","ho visto l'immagine" +  prova + " accidenti");

                                        //seleziono solo i tag h3 che sono discendenti di un tag td
                                        Elements rigaUtileH3 =rigaComunicazione.select("td > h3");
                                        // scorro tutti i tag h3 per estrarne il valore (che è il titolo che mi interessa)
                                        for(Element rigaDettaglio : rigaUtileH3){
                                                //seleziono il tag h3 che sto scorrendo
                                                Elements rigaDettaglioTitolo = rigaDettaglio.getElementsByTag("h3");
                                                //estraggo il testo
                                                String titolo = rigaDettaglioTitolo.text();
                                                titoli.add(titolo);
                                        }
                                        Elements rigaUtileP =rigaComunicazione.select("td > p");
                                        for(Element rigaDettaglio : rigaUtileP){
                                                Elements rigaDettaglioTesto = rigaDettaglio.getElementsByTag("p");
                                                String testo = rigaDettaglioTesto.text();
                                                descrizioni.add(testo);
                                        }