java - 从 Jsoup 元素对象获取字符串文本

标签 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);

当我尝试打印价格变量时,出现空指针异常;

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/

相关文章:

html - 应用框悬停时我的链接停止工作

javascript - HTML中的innerHTML属性是什么

javascript - 如何访问要从中提取数据的网站的控制台?

c# - 如何在代码隐藏中的转发器内部的 div 上设置类?

javascript - 尝试循环一个函数以在多个元素上运行 - jQuery

java - 如何使用 Java 发现文件的创建时间?

java - 在android中存储少量数据

java - 从另一个 Activity Android studio 导入数据

css - 分布式中的 Angular 6 多个 css 文件

java - GXT 组合框中的水平滚动条