我正在尝试从雅虎财经获取股票报价。我提取页面,找到带有报价的 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。如果您检查股票价格元素,您应该能够找到它。
最佳答案
我粗略浏览了您提供的网址。我认为您弄错了 css 选择器语法,因为您要查找的元素似乎具有 ID“yfs_184_aapl”。您正在搜索具有该名称的标签。所以正确的查询应该是
Element quote = doc.select("#yfs_184_aapl").first();
或者
Element quote = doc.getElementById("yfs_184_aapl")
我确实检查了该内容是直接加载还是通过 AJAX 加载。你很幸运,它已经在原始内容中,所以应该能够通过给定的替代方案获得你需要的东西。
关于java - 从 Jsoup 元素对象获取字符串文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32053936/