gpt4 book ai didi

Java:如何使用 Jsoup 从 html 中提取特定数据?

转载 作者:行者123 更新时间:2023-12-01 11:16:30 26 4
gpt4 key购买 nike

基本上,我试图从此 link 中提取股票的当前价格

通过查看页面源代码,我希望能够从中提取数字:

<meta itemprop="price"
content="31.40" />

这是我的 Java 代码。

public double getCurrentPrice() throws IOException{
String url = "https://www.google.com.hk/finance?q=0023&ei=yF14VYC4F4Wd0ASb64CoCw";
Document doc = Jsoup.connect(url).get();
Element content = doc.getElementById("meta");
}

我不断收到此错误:

456.0Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Element cannot be resolved to a type

at application.Trade.getCurrentPrice(Trade.java:45)
at application.Trade.main(Trade.java:64)

该错误消息不是很有帮助。我该如何克服这个问题?

最佳答案

导入正确的类。另外,meta 不是 id,而是标签。因此您不能使用 getElementById 来获取该元素。使用 itemprop 属性获取此元素并通过 content 获取值 属性。

通配符仅从包中导入类。例如

import org.jsoup.* 将导入 org.jsoup.nodes 但不会导入 org.jsoup.nodes.Element; 因为 org.jsoup.nodes.Element 位于 org.jsoup.nodes 包中。

示例。

import java.io.IOException;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class example {

public static void main(String[] args) throws IOException {
String url = "https://www.google.com.hk/finance?q=0023&ei=yF14VYC4F4Wd0ASb64CoCw";
Document doc = Jsoup.connect(url).get();
Element content = doc.select("meta[itemprop=price]").first();
System.out.println(content.attr("content"));
}
}

输出

31.40

编辑

知道应该导入哪些类......

考虑这个声明

Document doc 

现在您正在创建 Document 对象,因此您应该导入 Document 类。如果您阅读 jsoup api你可以看到这个类的层次结构。

如您所见,Document是包org.jsoup.nodes的一个类所以你将类导入为 import org.jsoup.nodes.Document; 。你必须阅读 api。不管怎样,像netbeans这样的ide,eclipse会建议你导入一些类,这很简单并且节省了很多时间。

enter image description here

关于Java:如何使用 Jsoup 从 html 中提取特定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31771318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com