2012-10-30 13 views
5

Sto sviluppando un'applicazione che mostra la frequenza dell'oro e crea un grafico per questo.
Trovo uno website che mi fornisce regolarmente questa tariffa oro. La mia domanda è come estrarre questo valore specifico dalla pagina html.
Ecco il collegamento che ho bisogno di estrarre = http://www.todaysgoldrate.co.in/todays-gold-rate-in-pune/ e questa pagina html ha il seguente tag e contenuto.Come ottenere un valore specifico da html in java?

<p><em>10 gram gold Rate in pune = Rs.31150.00</em></p>  

Ecco il mio codice che uso per l'estrazione, ma non ho trovato modo per estrarre contenuto specifico.

public class URLExtractor { 

private static class HTMLPaserCallBack extends HTMLEditorKit.ParserCallback { 

    private Set<String> urls; 

    public HTMLPaserCallBack() { 
     urls = new LinkedHashSet<String>(); 
    } 

    public Set<String> getUrls() { 
     return urls; 
    } 

    @Override 
    public void handleSimpleTag(Tag t, MutableAttributeSet a, int pos) { 
     handleTag(t, a, pos); 
    } 

    @Override 
    public void handleStartTag(Tag t, MutableAttributeSet a, int pos) { 
     handleTag(t, a, pos); 
    } 

    private void handleTag(Tag t, MutableAttributeSet a, int pos) { 
     if (t == Tag.A) { 
      Object href = a.getAttribute(HTML.Attribute.HREF); 
      if (href != null) { 
       String url = href.toString(); 
       if (!urls.contains(url)) { 
        urls.add(url); 
       } 
      } 
     } 
    } 
} 

public static void main(String[] args) throws IOException { 
    InputStream is = null; 
    try { 
     String u = "http://www.todaysgoldrate.co.in/todays-gold-rate-in-pune/"; 
     //Here i need to extract this content by tag wise or content wise.... 

Grazie in anticipo .......

risposta

3

È possibile utilizzare biblioteca come Jsoup

È possibile ottenere da qui ->Download Jsoup

Ecco il suo riferimento API ->Jsoup API Reference

sua davvero molto facile da analizzare contenuto HTML usando Jsoup.

Qui di seguito è un esempio di codice che potrebbe essere utile a voi ..

public class GetPTags { 

      public static void main(String[] args){ 

      Document doc = Jsoup.parse(readURL("http://www.todaysgoldrate.co.intodays-gold-rate-in-pune/")); 
      Elements p_tags = doc.select("p"); 
      for(Element p : p_tags) 
      { 
       System.out.println("P tag is "+p.text()); 
      } 

      } 

     public static String readURL(String url) { 

     String fileContents = ""; 
     String currentLine = ""; 

     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(url).openStream())); 
      fileContents = reader.readLine(); 
      while (currentLine != null) { 
       currentLine = reader.readLine(); 
       fileContents += "\n" + currentLine; 
      } 
      reader.close(); 
      reader = null; 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e.getMessage(), "Error Message", JOptionPane.OK_OPTION); 
      e.printStackTrace(); 

     } 

     return fileContents; 
    } 

} 
+0

Grazie uomo .... ottengo quello che voglio ... continuate così! –

+0

Prego :) – Pratik

Problemi correlati