从Jsoup Element对象获取字符串文本

时间:2015-08-17 15:15:12

标签: java html css tags jsoup

我试图从雅虎财务中获取股票报价。我提取页面,找到带有报价的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);

当我尝试打印price var时,它给了我空指针异常;

另外,id yfs_184_aapl是股票价格的跨度标记ID。如果您检查股票价格元素,您应该能够找到它。

1 个答案:

答案 0 :(得分:0)

我简要介绍了您提供的网址。我认为你错了css选择器语法,因为你正在寻找的元素似乎有id“yfs_184_aapl”。您正在搜索具有该名称的标记。所以正确的查询应该是

Element quote = doc.select("#yfs_184_aapl").first();

或者

Element quote = doc.getElementById("yfs_184_aapl")

我确实检查过该内容是直接加载还是通过AJAX加载。你很幸运,它已经在原始内容中了,所以应该能够通过给定的替代方案获得你需要的东西。