2016-12-01 53 views
0

完整的Java和Jsoup新手,我卡住了。我正在制作一个程序,查看雅虎财经的网站,并抓住股票的当前价格和52周的表格范围。我目前的价格存在解析问题。 see my browser here我试图通过跨班级获取股票价格,正如您可以在我的图像中看到的那样,包含股价下跌(红色)和股价上涨(绿色)时价格变化的跨度。我怎样才能在Jsoup中获得这样的价格,以便我可以选择它而不考虑课程?Jsoup爪哇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