2016-05-29 4 views
-3

Ich habe eine Weile mit JSoup gearbeitet und getestet und dieses Problem hat mich für eine Weile gestört.Versuchen Sie, Informationen von einer Website zu extrahieren, aber einige Werte erscheinen als null?

http://fx.sauder.ubc.ca/today.html

Derzeit ist diese Klasse Extrakt Informationen aus einer Tabelle von dieser Website soll die einzigen Dinge, dass dieses Programm aus der Tabelle ziehen ist

Code | Currency | fcu/CAD | fcu/USD | Code | Currency | fcu/CAD | fcu/USD 

und alle 3-Buchstaben-Codes auf gezeigt die Website, aber für alle anderen Informationen wie Werte und Dollar-Namen zeigt das Programm diese als null. Wenn jemand wissen will, dass px bis 34 geht und ay bis 16 geht, dann ist das die Größe der Tabelle, aus der ich extrahieren würde.

public String CountryHandler2(int px, int ay) throws IOException{ 
    String url = "http://fx.sauder.ubc.ca/today.html"; 
    Document doc = Jsoup.connect(url).get(); 
    Elements paragraphs = doc.select("body > table:nth-child(4) > tbody:nth-child(1) > tr:nth-child("+px+") > td:nth-child("+ay+") > font:nth-child(1) > b:nth-child(1)"); 

    System.out.println("Paragraphs " + paragraphs.text()); 
    if(paragraphs.hasText()){ 
     return paragraphs.text(); 
    } 
    return null; 
} 
+1

Bitte machen Sie eine [mcve]. Es gibt keine Möglichkeit, Ihnen hier zu helfen, da wir nicht die notwendigen Informationen in der Frage selbst haben. Siehe auch [fragen]. – Tunaki

Antwort

0

Ich versuchte dies und konnte Tabellendaten extrahieren. Vielleicht versuchst du es so.

public static void main (String [] args) throws IOException{ 
     Document doc = Jsoup.connect("http://fx.sauder.ubc.ca/today.html").get(); 
     Element table = doc.select("table").get(2); //get the 3rd table 
     Elements trs = table.select("tr"); //get each row of that table 
     for (Element e: trs){ 
      System.out.println(e.text()); 
     } 
    } 
Verwandte Themen