java使用Jsoup获取数字值
我正在使用java从BNN网站上简单地跟踪股票的变化,并且我已经将其全部设置为访问正确的值。但是,我只得到{{quoteObj.openPrc | number:2 }}
,而不是一个数值。如何访问网站上显示的数字值
另外,如果你能帮助我得到这个网站上的当前价值,这将是非常有帮助的
//编辑//
org.jsoup.nodes.Document doc = null;
try {
doc = Jsoup.connect("https://www.bnn.ca/stock/ACB.TO").userAgent("Mozilla/5.0").timeout(30000).get();
} catch (IOException e) {
e.printStackTrace();
}
org.jsoup.nodes.Element content = doc.getElementById("content-container");
org.jsoup.nodes.Element value = content.getElementsByClass("value").get(0);
doc.select("div.value:contains(quoteObj.high)");
Pattern pattern = Pattern.compile("number:(\\d+)");
Matcher matcher = pattern.matcher(value.text());
if (matcher.find()) {
String number = matcher.group(1);
System.out.println(number);
}`
我更新了我的代码,但现在输出只有2,它只是从{{quoteObj.high | number:2}中获取数字。我希望在站点上显示实际的数字值
# 1 楼答案
假设您已经检查了网站的源代码,如果没有,这里有一个代码片段,您正试图使用JSOUP获取它
如果您看到
<div class="value"> {{quoteObj.openPrc | number:2 }} </div>
返回作为输出得到的内容。把它当作字符串,做你想做的事情
供您参考,该网站是基于angularjs构建的,{quoteObj.openPrc | number:2}是角度管道,这是一种编写显示值转换的方法,您可以在HTML中声明
编辑:
根据您所附的图像,您要检索的数据是
如果您进入开发者控制台的网络选项卡,您将找到获取数据的确切请求
导航到“预览”选项卡,也可以看到相应的响应
html源代码中也引用了同样的内容,您可以通过按CTRL+U来查看