【发布时间】:2015-08-17 15:15:12
【问题描述】:
我正在尝试从 Yahoo Finance 获取股票报价。我提取页面,找到带有报价的 span 标签,但是当我尝试将其输出到控制台时没有任何反应。有人可以帮忙吗?
Document doc = Jsoup.connect("http://finance.yahoo.com/q?s=AAPL").get();
Elements quote = doc.select("yfs_184_aapl");
for(Element h: quote)
{
String price = h.text();
System.out.println(price);
}
我也知道Element对象不为空:
if(quote == null)
{
System.out.println("The element is empty");
}
编辑:
我试过这个方法
Document doc = Jsoup.connect("http://finance.yahoo.com/q?s=AAPL").get();
Element quote = doc.getElementById("yfs_184_aapl");
String price = quote.text();
System.out.println(price);
当我尝试打印价格变量时,它给了我空指针异常;
id yfs_184_aapl 也是股票价格的跨度标签 ID。如果您检查股票价格元素,您应该能够找到它。
【问题讨论】:
-
请描述...
-
我在该 HTML 中看不到任何
yfs_184_aapl标记(也没有具有此类/id 的元素)。此外,select将不会返回null,如果它找不到任何东西,但会返回空列表,所以你应该用quote.isEmpty()测试它,而不是quote == null。 -
那个页面也有很多JavaScript代码,但是Jsoup不支持JS。尝试在浏览器中关闭 JS 支持,看看是否会在尝试解析的页面上看到结果。