2016-12-01 4 views
0

のjavaとjsoupの初心者を得ることができず、私は立ち往生しています。私はヤフーファイナンスのウェブサイトを見て、株式の現在の価格とテーブルの52週間の範囲を把握するプログラムを作っています。私は現在の価格で解析問題を抱えています。 see my browser here私はスパンクラスで株価を把握しようとしています。私のイメージでわかるように、株価が下がっているとき(赤色)、株式が上がっているとき(緑色)に価格を含むスパンが変わります。クラスに関係なく選択できるように、Jsoupでその価格を取得するにはどうすればよいですか?Jsoup Java Htmlのスクレイピングが数字

ここは私の現在のコードです。 spriceは文字列形式の現在の価格です。遅いのは52週の文字列形式です。前もって感謝します。

Document doc = Jsoup.connect("http://finance.yahoo.com/quote/AAPL? ltr=1").timeout(10*1000).get();  

Elements spans = doc.select("span"); 
Element span = null; 
Elements rows = doc.select("td"); 
Element row = null; 
double price= 0; 
double low = 0; 
String sprice = ""; 
    String slow = ""; 

    if (spans.hasClass("Fw(b) D(ib) Fz(36px) Mb(-4px)")) {//*this code gets the current price on yahoo.com 
     span = spans.get(13); 
     sprice = span.text(); 
     System.out.println("the sprice is: " + sprice); 
    } 

    if(rows.hasClass("Ta(end) Fw(b)")){//*this code gets the 52 week range on yahoo.com 
     row = rows.get(13); 
     slow =row.text(); 
     System.out.println("the slow is: " + slow); 
    } 

答えて

0

固定要素idを持つ隣接要素を探してそこからナビゲートします。例えば

doc.getElementById("quote-market-notice").parent().child(0).text() 
+0

おかげで非常に役立ちます – Joeysk